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 :

Sysutils::FileRead lecture incoh�rante


Sujet :

C++Builder

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    5
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 5
    Par d�faut Sysutils::FileRead lecture incoh�rante
    Bonjour � tous,

    Je vous expose mon probl�me. Je dois � partir de mon application lire un fichier texte. Simple me direz-vous (fopen, fstream,etc... les solutions ne manquent pas) mais j'ai d�cid� d'utiliser la routine FileRead afin d'en comprendre le fonctionnement.

    Le fichier texte en question contient une seule ligne --> V08.24.02

    voici mon code :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    char *Version = new char[10];
    ZeroMemory(Version, sizeof(Version));
    int HandleFichier = FileOpen("C:\\logiciel\\Test\\f_test.ver")
    if(!HandleFichier)
    {
    Application->Terminate()
    }
    else
    {
    FileSeek(HandleFichier, 0, 0); //inutile ?
    FileRead(HandleFichier, Version, 10);
    FileClose(HandleFichier);
    }
    Mais curieusement ma variable Version contient -->V08.02a.00
    au lieu de -->V08.24.02

    Quelqu'un peut-il m'expliquer ce miracle ?
    Cordialement

  2. #2
    Membre �m�rite
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Septembre 2005
    Messages
    401
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 52
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 401
    Par d�faut
    Hello,

    Ai essay� sous Builder 2007 et 2009, �a relit bien...

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    char Version[10];
    ZeroMemory(Version, sizeof(Version));
    int HandleFichier = FileOpen("c:\\ver.txt", 0);
    if(!HandleFichier)
    {
    Application->Terminate();
    }
    else
    {
    //FileSeek(HandleFichier, 0, 0); //inutile ?
    FileRead(HandleFichier, Version, 9);  
    FileClose(HandleFichier);
    }
    Sous quelle version de Builder travailles-tu ?

  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
    A prioris je n'ai pas de probl�me non plus avec ce bout de code (sous BCB5):

    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
      char *Version = new char[9];
      ZeroMemory(Version, sizeof(Version));
      int HandleFichier = FileOpen("C:\\version.txt", 0);
      if(!HandleFichier)
      {
         Application->Terminate() ;
      }
      else
      {
         //FileSeek(HandleFichier, 0, 0); //inutile ?
         FileRead(HandleFichier, Version, 9);
         FileClose(HandleFichier);
      }
      Version[9] = 0 ;
      ShowMessage( AnsiString(Version) ) ;
    J'obtiens bien :

    V08.24.02

    Une autre solution pour lire ton fichier avec l'utilisation de TStringList :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
      TStringList *fichier = new TStringList();
      fichier->LoadFromFile( "C:\\version.txt" ) ;
      AnsiString Version;
      Version = fichier->Text ; //si le fichier ne contient qu'une ligne
      Version = fichier->Strings[0] ; // si le fichier contient plus d'une ligne
      delete fichier ;
      ShowMessage( Version ) ;

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    5
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 5
    Par d�faut RESOLU
    Bonjour � tous,

    Apparemment c'�tait surement du � une fuite m�moire de mon prog un peu plus haut dans mon code car lorsque j'ai comment� la fonction incrimin� plus de probl�me.

    je vous remercie d'avoir apport� de l'attention � ce petit bout de code

    A bient�t

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [ADO] Sauvegarde / lecture de recordset
    Par SpaceFrog dans le forum VB 6 et ant�rieur
    R�ponses: 7
    Dernier message: 20/09/2002, 16h54
  2. Lecture de fichiers ".WAV"...
    Par 0x4e84 dans le forum Langage
    R�ponses: 2
    Dernier message: 03/09/2002, 09h43
  3. Pb Lecture de bitmap monochrome
    Par Lo�c38 dans le forum C++Builder
    R�ponses: 4
    Dernier message: 02/07/2002, 18h24
  4. Lecture d'une image bitmap
    Par Geronimo dans le forum x86 32-bits / 64-bits
    R�ponses: 18
    Dernier message: 28/06/2002, 12h01
  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