IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

lecture d'un fichier [Débutant]


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2010
    Messages : 22
    Par défaut lecture d'un fichier
    bonjour a tous
    je suis debutante en c++ et je travaille avec builder; je souhaite remplire deux tableaux par des valeurs contenu dans un fichier .text. je n'ai aucune idée comment faire: en tous cas j'imagine que je dois accéder, de mon programme, a ce fichier et et copiers les donner dans mes tableau.. mais comment?!
    qlq'1 peu m'aider
    merci

  2. #2
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par défaut
    Pour accéder à un fichier texte, utilise TStringList:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    TStringList *sl = new TStringList();
    sl->LoadFromFile( "C:\\NomDossier\\NomFichier.txt" ) ;
    for( int i=0; i < sl->Count; i++ )
    {
       // Afficher la Ième ligne du fichier
       ShowMessage( sl->Strings[i] ) ;
    }
    delete sl ;

  3. #3
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par défaut
    Citation Envoyé par lydafree Voir le message
    mon fichier contient deux colonne de nombre et le nombre de ligne et de 500. ce que je veux c de récupérer les nombre de la 1ere colonne dans un tableau vector et la 2eme colonne dans un autre tableau, et cela sans passer pas un affichage dans un objet.
    dans votre réponse vous récupérer ligne par ligne c ça?
    Le code que j'ai donné permet effectivement de lire un fichier texte ligne par ligne. Il suffit ensuite de récupérer chaque ligne et de faire le traitement souhaité, dans ton cas découper la ligne pour en extraire deux informations.

    Tout dépend comment est structuré ton fichier texte, si il utilise des séparateur de champ, ou si la taille des champ est fixe?

    Pour ton traitement, tu devrait t'en sortir avec les fonctions ci-dessous:
    - Pos qui te permet de trouver la position du caractère séparateur dans la chaîne de caractère
    - SubString qui te permet de récupérer une sous chaine dans la chaine principale
    - Trim qui te permet de supprimer les espace avant et après une chaine de caractère

    Essai d'avancer de ton coté, tu verra que ce n'est pas très compliqué... Et si tu n'y parvient pas, poste le bout de code qui pose problème pour qu'on puisse t'aider.

  4. #4
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2010
    Messages : 22
    Par défaut
    merci bcp de l'interet que tu porte a mon problème, en fait j'ai essayer ton code et ça marche pour le charger dans un Tstringlist, mais c'est pas ce que je veux. mon fichier porte l'extention .tsp (traveling selsman problem) c'est des coordonnées de deux vecteur que je devrais utiliser pour calculer une distance, ces coordonnées je lai prend dans le site tsp LIB que voici: http://www.imm.dtu.dk/~hlp
    c'est dans set0 et set1. je devrai prendre les valeurs des colonnes 2 et 3, les sauvgarder dans deux vecteur dans mon code pour les utiliser aprés.

    j'arrive a ouvrir le fichier, mais je sais pas comment attiendre les valeurs et comment prendre juste un certain nombre de ces coordonnées et surtout les enregistrer dans mes deux vector.
    just un dernier truc, ce fichier peut s'ouvrir avec winedit ou c++ builder ou delphi mais wordpad ne l'ouvre pas comme il le faut.

    NB: c'est pour mon projet de M2, je dois soutenir mon projet mis septembre et la je génère des coordonnées semblable juste pour avancer, mais franchement je sais que pour mes prof je dois utilisé celle qui sont dans ce site.

    merci

  5. #5
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2010
    Messages : 22
    Par défaut
    voila, j'ai réussie a résoudre ce problème, je vous donne le code qlq'1 pourrai en avoir besoin.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
            i = 0;  j = 0;
     
    	if (OpenDialog1->Execute())
    	{
    		ifstream instance;
    		instance.open(OpenDialog1->FileName.c_str());
    		instance.seekg(0,ios::end);
    		instance.seekg(0,ios::beg);
     
                     while (std::getline(instance,ligne))
    		{
                             if (i >= 7)
                             {
                                    double coorx,coory;
                                    int num;
                                    sscanf(ligne.c_str(), "%d %lf %lf", &num, &coorx, &coory);
     
                                    if (j <= nbr_ville)
                                    {
                                            coordx2[j] = coorx;
                                            coordy2[j] = coory;
                                            j++;
                                    }
                             }
                            else
                                    i++;
    		}
     
    	}

  6. #6
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par défaut
    Si le problème est résolu, n'oublie pas de cliquer sur le bouton

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lecture d'un fichier .dbf
    Par San Soussy dans le forum Autres SGBD
    Réponses: 8
    Dernier message: 07/07/2004, 16h30
  2. Réponses: 6
    Dernier message: 02/09/2003, 15h12
  3. Lecture et ecriture fichier .ini
    Par despe dans le forum C
    Réponses: 6
    Dernier message: 23/07/2003, 20h40
  4. [langage] Optimiser la lecture d'un fichier
    Par And_the_problem_is dans le forum Langage
    Réponses: 4
    Dernier message: 05/02/2003, 08h54
  5. [langage] Optimiser la lecture d'un fichier
    Par And_the_problem_is dans le forum Langage
    Réponses: 2
    Dernier message: 11/06/2002, 10h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo