begin process at 2012 05 29 19:01:43
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Pb WriteFile


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Pb WriteFile

mardi 16 août 2005 à 22:08:48 | Pb WriteFile

Joky

Membre Club
Bonsoir Bonsoir ma tite famille :) lol
Donc j'ai un Soucy :) et oui et oui ;)
En faite je ne suis pas sur que ça vienne de WriteFile, mais en tout cas j'ai un blème...

Donc lorsque j'enregistre un Fichier, je fais comme ça :
BOOL SaveUser(LPUSER lpUser)
{
    HANDLE hFile;
    char Buff[1024];
    DWORD lpNbrByteWritten;
    LPSHORTCUT lpTemp = lpUser->lpFirst;

    hFile = CreateFile(TEXT(lpUser->lpName),
                       GENERIC_WRITE,    
                       FILE_SHARE_WRITE,  
                       NULL,               
                       CREATE_ALWAYS,        
                       FILE_ATTRIBUTE_NORMAL,
                       NULL);

    if(hFile == INVALID_HANDLE_VALUE)
        return FALSE;

    while(lpTemp)
    {
        wsprintf(Buff, "%s;%s;", lpTemp->lpName, lpTemp->lpShortPath);
        WriteFile(hFile, (LPCVOID)Buff, sizeof(Buff), &lpNbrByteWritten, NULL);
        lpTemp = lpTemp->pNext;
    }

    CloseHandle(hFile);
    return TRUE;
}
Donc tant que l'utilisateur en cours possède encore un Raccourci(lpTemp) il écrit dans le fichier les caractéristiques du raccourci en cour

Mais lorsque que j'essai de Lire le Fichier, je n'ai pas tout ce que j'ai sauvegardé
Le problème c'est surtout qu'il sauvegarde en binaire, donc j'ai pas l'occasion de vérifier :s

Et donc voilà comment je lis le fichier :o
BOOL LoadUser(char *szName)
{
    HANDLE hFile;
    DWORD dwByteToRead;
    DWORD dwByteRead;
    char *Buff;

    hFile = CreateFile( szName,
                        GENERIC_READ,
                        FILE_SHARE_READ,
                        NULL,
                        OPEN_EXISTING,
                        0,
                        0);

    if(hFile == INVALID_HANDLE_VALUE)
        return FALSE;

    dwByteToRead = GetFileSize(hFile, NULL);

    Buff = new char[dwByteToRead+1];
    if(!ReadFile(hFile, Buff, dwByteToRead, &dwByteRead, NULL))
        return FALSE;

    CloseHandle(hFile);
    MessageBox(NULL, Buff, NULL, 0x20);
    delete[] Buff;
    return TRUE;
}

Je pense que vous n'avez rien compris lol donc si c'est le cas, dite le moi, j'uploaderais le tout sur mon site ;)

Enfin avant de vous laisser j'vais quand même vous souhaitez une bonne soirée hein ;)

void Aurevoir( void ); //Bonne journée

mardi 16 août 2005 à 22:15:44 | Re : Pb WriteFile

BruNews

Administrateur CodeS-SourceS
pourquoi tu 'write' sizeof(Buf) ???

ciao...
BruNews, MVP VC++
mardi 16 août 2005 à 22:19:12 | Re : Pb WriteFile

Joky

Membre Club
Bon c'est bon lol
Ce que je chercher à faire, j'viens de réussir :)

while(lpTemp)
    {
        strcat(Buff, lpTemp->lpName);
        strcat(Buff, ";");
        strcat(Buff, lpTemp->lpShortPath);
        strcat(Buff, ";");
        lpTemp = lpTemp->pNext;
    }
    WriteFile(hFile, &Buff, sizeof(Buff), &lpNbrByteWritten, NULL);

Comme ça je suis sur que buff, contient ce qu'il faut ;)

void Aurevoir( void ); //Bonne journée

mardi 16 août 2005 à 22:20:05 | Re : Pb WriteFile

Joky

Membre Club
Bé le troisieme param, c'est pas le nombre de Byte à écrire ???
En passant justement,
Byte, c'est octet ? ou bit ?
Parce que c'est ambigue...

void Aurevoir( void ); //Bonne journée

mardi 16 août 2005 à 22:26:40 | Re : Pb WriteFile

BruNews

Administrateur CodeS-SourceS
jamais BIT mais BYTE, octet.
Pourquoi ne pas écrire seulement ce qui est réellement écrit dans Buf au lieu de Buf entier ?

ciao...
BruNews, MVP VC++
mardi 16 août 2005 à 22:29:56 | Re : Pb WriteFile

whikie

Bonsoir,  

 Trouvez a cette adresse : [ Lien ]

Bit

(Binary DigIT) -- C'est l'unité binaire de quantité d'information qui peut représenter deux valeurs distinctes : 0 ou 1. Un champ de 8 bits constituant ce qu'on appelle 1 byte ou 1 octet.

Voir aussi: Bandwidth, Bps, Byte, Kilobyte, Megabyte

Bit

Bonne chance
mardi 16 août 2005 à 22:31:15 | Re : Pb WriteFile

Joky

Membre Club
Ahhh, donc strlen(Buff)
C'est vrai que sizeof(Buff) va me sortir 1024*sizeof(char) oui
J'pensais que ça s'arrêter avec le zéro terminal mais non j'y avais jamais pensé :p
Merci bien Mr j'vais réessayer l'ancienne version pour voir :p

void Aurevoir( void ); //Bonne journée

mardi 16 août 2005 à 22:35:25 | Re : Pb WriteFile

Joky

Membre Club
Ouaip je savais mais c'est parce qu'en anglais Byte c'est un octet
et en français Byte c'est assez proche de bit donc voila
Tout ces mots qui parle de l'anatomie, ça me déranger un peu lol

void Aurevoir( void ); //Bonne journée

mardi 16 août 2005 à 22:38:31 | Re : Pb WriteFile

xterminhate

Membre Club
C'est bien connu, le Byte en france mesure 3.78 octets.... alors que partout ailleurs c'est 8 bits !

Cordialement,
Xterminhate.
mardi 16 août 2005 à 22:42:25 | Re : Pb WriteFile

Joky

Membre Club
Dis aussi que chez les black un byte c'est 16 tant que tu y es mdr

void Aurevoir( void ); //Bonne journée


1 2

Cette discussion est classée dans : return, writefile, hfile, buff, lptemp


Répondre à ce message

Sujets en rapport avec ce message

ptit probl with:WriteFile() et ReadFile() [ par oudkaramla ] salut tout le monde,J'ai un petit problem avec WriteFile() et ReadFile().lors de la compilation j'ai les deux suivantes erreures:********************* Exporter resources WriteFile n'ecrit rien [ par cyrus458 ] Bonjour  hress  = FindResource(NULL,"IDR_DATA1",RT_RCDATA);  fhrsrc  = LoadResource(NULL,hress); hFile = CreateFile("C:\\aaa.exe",GENERIC_WRITE,FILE_S apiwin [ par youma85 ] salut tous le monde je suis un débutant dans la programmation windows et je vient de compilet un programme  on me donne toujours ce message:projet4\ma Comparaison de Variables [ par CassusGreg ] Salut a tous,Je débute vraiment en C++ (je suis sous VC++6)Je ne comprend pas grand chose en déclaration de variables et en test de comparaison. Mon b Variable offset je n'y comprend vraimen rien!! [ par CassusGreg ] void LireLigne(HANDLE hFile) { for (int i=0; i ReadFile(hFile,&buff[i],1,&Ecrit,0); if (buff[i]=='\n') { buff[i-1]=0; i=100; } } return;}LireLi html+dialog sans MFC [ par Manson ] Salut,voila j'essai d'integrer une page html dans une dialog, maissans MFC.Par mfc c'est super simple. Mais sans ... ca devient plus dure.J'ai integre Fonction return dans une console windows [ par Jolfulorc ] Bonjour,Lorsque j'affiche un texte dans une console windows (code du genre : coutla façon que j'ai trouvé pour contourner cet inconvénient cosinus [ par anek971 ] Bonjour ,ben avt de demander de l'aide j'ai chercher sur le forum mais ya pas le programme en c.Et en faite c juste pr une verification car mon progra vc++ commande return this; [ par julojulo ] je suis en train d'ecrire une classe vecteur semblable a la classe vector, je dois donc redefinir loperateur =mais je ne sais pas si VC++ accepte la c VC++ pb comande return this; help [ par julojulo ] je suis en train d'ecrire une classe vecteur semblable a la classe vector, je dois donc redefinir loperateur =mais je ne sais pas si VC++ accepte la c


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,310 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales