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


Sujet :

C++Builder

  1. #1
    Membre confirm�
    Homme Profil pro
    Administrateur syst�mes et r�seaux
    Inscrit en
    Novembre 2007
    Messages
    128
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Administrateur syst�mes et r�seaux
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2007
    Messages : 128
    Par d�faut Lecture d'un fichier
    Bonjour,

    Je doit renplacer un programme qui converti des donn�es pour un autre programme.

    Je doit travailler sur des fichiers, style fichier text.
    Je me suis souvenu mes vieu cour de c, et j'ai taper sa pour commancer/tester :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    FILE *f;
    char ligne[256];
    f=fopen("S1.IRM","r");
    fread(&ligne,sizeof ligne,1,f);
    fclose(f);
    Label1->Caption=ligne;
    J'ai bien sur rajouter au d�but un include stdio.h

    Mon programme compile bien, mais lorsqu'il ex�cute la ligne du fread il plante :
    Le projet meteo.exe � d�clanch� la classe d'Exception EAccessViolation avec le message 'Violation d'acc�s � l'adresse 3286ED28 dans le module 'CC3280MT.DLL'. Lecture de l'adresse F832F7FC
    Si je mes la ligne du fread en commentaire, le programme tourne.

    J'ai dut oublier un petit d�taille depuis le temps.

  2. #2
    Membre �clair� Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    934
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 934
    Par d�faut
    comment est la structure de ton fichier texte ?
    As-tu diff�rentes valeurs sur une ligne ?

    Tu peux charger le contenu de ton fichier dans un TStringList

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    TStringList *Fichier = new TStringList();
    Fichier->LoadFromFile("S1.IRM");
    Et ainsi avoir accc�s � chaque ligne de ton fichier.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
    // On parcourt le fichier
    for(int i = 0; i < Fichier->Count; i++)
    {
        // affichage de la ligne i
        ShowMessage(Fichier->Strings[i]);
    }

  3. #3
    Membre confirm�
    Homme Profil pro
    Administrateur syst�mes et r�seaux
    Inscrit en
    Novembre 2007
    Messages
    128
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Administrateur syst�mes et r�seaux
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2007
    Messages : 128
    Par d�faut
    D'abort merci.
    J'arrive � lire les ligne de mon fichier.
    S'est vrais que le fopen doit commencer � dater.
    Pour r�pondre � tes question, j'ai un enregistrement par ligne, mais avec plusieur valleur � la suite. Voici pour exemple 2 ligne du fichier :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    80401032006 81   181   185   175   178   185   193   164   174   169   154   163   161   159   151   171   166   171   192   184   173   167   169   152   152   171   158   171   159   158   166   167
    80501032006 81     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0
    Mais maintenat que je sais avoire les valeur dans une variable, je vais savoire me d�merder pour extraire se que j'ai besoin dans se fichier (je doit juste relire la date du dernier enregistrement)

    Par contre je vais devoire rajouter des lignes � la fin de se fichier, avec la m�me structure.
    Si vous pouver donc m'indiquer commen faire l'op�ration inverse. Sa me rendrait service.

  4. #4
    Membre �clair� Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    934
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 934
    Par d�faut
    Je te demandais la Structure de ton fichier pour t'aider � en extraire le contenu mais je vois que tu ten sort donc c'est tou bon.

    il n'y a pas malheureusement de fonction SaveToFile pour un TStringList

    Moi je passe par un TMemo pour sauvegarder dans un fichier mais peut �tre qu'il y � plus simple

    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
     
    TStringList *Fichier = new TStringList();
    Fichier->LoadFromFile("S1.IRM");
     
    .......
     
    // Création du Memo
    TMemo *Memo = new TMemo(Form);
     
    // On balaye le TStringList
    for(int i = 0; i < Fichier->Count; i++)
    {
       // Ajout de la ligne dans le Memo
       Memo->Lines->Add(Fichier->Strings[i]);
    }
     
    // Enregistrement du fichier
    Memo->Lines->SaveToFile("S1.IRM");

  5. #5
    Membre Expert
    Avatar de bakaneko
    Profil pro
    Inscrit en
    F�vrier 2004
    Messages
    1 268
    D�tails du profil
    Informations personnelles :
    �ge : 45
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2004
    Messages : 1 268
    Par d�faut
    Citation Envoy� par kurul1 Voir le message
    il n'y a pas malheureusement de fonction SaveToFile pour un TStringList
    TStringList �tant un enfant de TStrings, il poss�de une m�thode SaveToFile (en tout cas sous BCB6).

  6. #6
    Membre �clair� Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    934
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 934
    Par d�faut
    Je suis b�te des fois, je sais pas pourquoi. Ca me paraissait bisard qu'il y est la m�thode pour charger et pas celle pour sauver.

    Merci � toi bakaneko

    Donc apr�s correction, pour sauver ta TStringList dans un fichier


    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    Fichier->SaveToFile("S1.IRM");
    Dsl pour avoir racont� des anneries

  7. #7
    Membre confirm�
    Homme Profil pro
    Administrateur syst�mes et r�seaux
    Inscrit en
    Novembre 2007
    Messages
    128
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Administrateur syst�mes et r�seaux
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2007
    Messages : 128
    Par d�faut
    Merci beaucoup du coups de main.

+ 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