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 :

Enregistrement d'un fichier limité à 5120 Bytes [Système/Fichiers/API]


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7
    Par défaut Enregistrement d'un fichier limité à 5120 Bytes
    Bonjour à tous.
    Je programme sur C++ Builder 6.
    J'aimerais enregistrer un fichier dans un pointeur (pTestXML).
    Malheureusement une limitation est effectué sur celui-ci...
    Le pointeur ne contient que 5120 Bytes d'informations, alors que mon fichier est sensiblement plus gros.
    Avez vous une idée pour résoudre ce problème?

    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
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
       FILE *pFile;
       size_t Result;
       char *pTextXML;
       long FileSize;
     
       // Ouverture du fichier XML
       pFile = fopen ("villes.xml","r");
     
       fseek (pFile,0,SEEK_END);
       FileSize = ftell (pFile);      // FileSize = 5123
       rewind (pFile);
     
       // Reserve la mémoire pour enregistrer le fichier dans un buffeur
       pTextXML = (char*) malloc (sizeof(char)*FileSize);
       // Vérification que l'allocation à été effectuée
       if (pTextXML == NULL)
       {
          ShowMessage("Allocation de la mémoire échouée");
          Application->Terminate();
       }
     
       Result = fread (pTextXML,sizeof(char),FileSize,pFile);
       // Result = 5120 alors que pTextXML ne contient que 5120 Bytes de données...

  2. #2
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par défaut
    Premièrement si tu veux programmer réellement en C++ laisse tomber les malloc, calloc et realloc. Utilise plutôt new.

    Deuxièmement, si tu programme avec C++Builder n'utilise pas fopen, fread, fseek ... C'est plus simple d'utiliser TFileStream. Sinon, tu peux toujours utiliser FileOpen, FileRead, FileSeek. Il y a un démo ici: http://docwiki.embarcadero.com/CodeS..._%28C%2B%2B%29

    Tiens moi au courant...

    PS: est-ce que ton fichier contient du binaire?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7
    Par défaut
    Tu as raison. J ai trop pris l'habitude de coder en C.
    Je vais essayé et je te tiens au courant.
    Je te remerci pour ta reponse et je pense que je vais adopter la technique du new!
    Bonne soiree.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7
    Par défaut
    J'ai utilisé FileOpen et plus de problème de limitation!
    Merci beaucoup.

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

Discussions similaires

  1. [LG]Enregistrements dans un fichier
    Par ticoude dans le forum Langage
    Réponses: 1
    Dernier message: 26/11/2004, 18h33
  2. [VB.NET] Fichier text et byte()
    Par nmerydem dans le forum Windows Forms
    Réponses: 6
    Dernier message: 10/11/2004, 17h28
  3. Enregistrement d'un fichier Excel par automation
    Par tiopan dans le forum Access
    Réponses: 2
    Dernier message: 04/12/2003, 19h57
  4. [LG]supprimer un enregistrement dans un fichier
    Par Marcus2211 dans le forum Langage
    Réponses: 10
    Dernier message: 17/11/2003, 00h59
  5. enregistrer dans un fichier avec une appli mdi
    Par ferrari dans le forum C++Builder
    Réponses: 4
    Dernier message: 05/05/2002, 15h17

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