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

MFC Discussion :

Lire un fichier de 50 gb


Sujet :

MFC

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2004
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Lire un fichier de 50 gb
    Pourrais-je avoir un petit programme d'exemple de l'utilisation des api :
    - OpenFile
    - CreateFile
    - SetFilePointer

    Car lorsque je les utilise, je n'accède pas au bon endroit dans le fichier...


    Thank's

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    salut, c'est que a priori tu te plantes dans l'appel de setFilePointeur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    // Try to move hFile's file pointer some distance. 
    dwPtr = SetFilePointer (hFile, lDistance, NULL, FILE_BEGIN) ;
    avant de commencer à lire le fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    dwPtr = SetFilePointer (hFile,0, NULL, FILE_BEGIN) ;

  3. #3
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Salut

    Déjà OpenFile n'est plus a utiliser, il faut prendre à la place CreateFile

    Voici un exemple d'utilisation tiré du MSDN.
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    HANDLE hFile; 
     
    HANDLE hAppend; 
     
    DWORD  dwBytesRead, dwBytesWritten, dwPos; 
     
    char   buff[4096]; 
     
    // Open the existing file. 
     
    hFile = CreateFile("ONE.TXT",     // open ONE.TXT 
        GENERIC_READ,                 // open for reading 
        0,                            // do not share 
        NULL,                         // no security 
        OPEN_EXISTING,                // existing file only 
        FILE_ATTRIBUTE_NORMAL,        // normal file 
        NULL);                        // no attr. template 
     
    if (hFile == INVALID_HANDLE_VALUE) 
    { 
        ErrorHandler("Could not open ONE.");  // process error 
    } 
     
    // Open the existing file, or if the file does not exist, 
    // create a new file. 
     
    hAppend = CreateFile("TWO.TXT",   // open TWO.TXT 
        GENERIC_WRITE,                // open for writing 
        0,                            // do not share 
        NULL,                         // no security 
        OPEN_ALWAYS,                  // open or create 
        FILE_ATTRIBUTE_NORMAL,        // normal file 
        NULL);                        // no attr. template 
     
    if (hAppend == INVALID_HANDLE_VALUE) 
    { 
        ErrorHandler("Could not open TWO.");    // process error 
    } 
     
    // Append the first file to the end of the second file. 
    // Lock the second file to prevent another process from 
    // accessing it while writing to it. Unlock the 
    // file when writing is finished. 
     
    do 
    { 
        if (ReadFile(hFile, buff, 4096, &dwBytesRead, NULL)) 
        { 
            dwPos = SetFilePointer(hAppend, 0, NULL, FILE_END); 
            LockFile(hAppend, dwPos, 0, dwPos + dwBytesRead, 0); 
            WriteFile(hAppend, buff, dwBytesRead, 
                &dwBytesWritten, NULL); 
            UnlockFile(hAppend, dwPos, 0, dwPos + dwBytesRead, 0); 
        } 
    } while (dwBytesRead == 4096); 
     
    // Close both files.
     
    CloseHandle(hFile); 
    CloseHandle(hAppend);

Discussions similaires

  1. Comment lire un fichier image
    Par Charlemagne dans le forum DirectX
    Réponses: 9
    Dernier message: 12/03/2004, 00h22
  2. [Servlet][EJB]lire un fichier à partir de mon bean
    Par kimausoleil dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 13/02/2004, 14h26
  3. [MFC] lire un fichier en int
    Par Kevgeii dans le forum MFC
    Réponses: 3
    Dernier message: 23/01/2004, 09h32
  4. Réponses: 5
    Dernier message: 11/01/2004, 20h17
  5. Lire le fichier du port série
    Par saibe dans le forum Linux
    Réponses: 7
    Dernier message: 09/04/2003, 09h29

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