Createfile

thegame88 Messages postés 12 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 15 juin 2009 - 15 juin 2009 à 14:10
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 - 16 juin 2009 à 16:02
Bonjour a tous,

Voila j'ai fait un ti prog qui utilise la fonction createfile, mais le premier argument de createfile doit être le chemin du fichier du genre "C:\\test" ce que je voudrais savoir c'est si il est possible de mettre dans ce premier arguement un variable char par exemple qui contiendrait le chemin du fichier par exemple

char c[64]= "C:\\Documents and Settings\\test.txr" ;

et donc de mettre la variable de type char c en premier argument?

Merci d'avance a tous

5 réponses

Pistol_Pete Messages postés 1053 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 9 juillet 2013 7
15 juin 2009 à 15:13
Salut
Oui c'est tout à fait possible. Cependant, c'est pas un char mais un char * avec un zero terminal.
A+
____________________________________________________________________________
Mon site internet :  
http://ImAnalyse.free.fr
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
15 juin 2009 à 18:19
Si tu es en ANSI, tu n'as rien à changer : il te suffit de passer la variable en paramètre.
Si tu es en UNICODE (ce qui est le choix par défaut), tu dois changer la définition dans ton code :
TCHAR c[64]= _T("C:\\Documents and Settings\\test.txr");
et ensuite tu peux utiliser CreateFile "normalement".
0
thegame88 Messages postés 12 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 15 juin 2009
15 juin 2009 à 20:53
Merci de vos réponse j'ai donc tester en déclarant comme ceci:

TCHAR c[64]= _T("C:\\test.txt");

HANDLE hfl;
DWORD rw;
char buf[20];

hfl = CreateFile(c, GENERIC_READ, 0, 0, OPEN_EXISTING, 0, 0);

if(hfl == INVALID_HANDLE_VALUE) return;
SetFilePointer(hfl, 91, 0, FILE_BEGIN);
ReadFile(hfl, buf, 16, &rw, 0);
CloseHandle(hfl);
if(rw != 16) return;
buf[16] = 0;

printf("%s",buf);

Lorsque je compile il n'y aucun problème mais lorsque j'exécute mon programme rien ne s'affiche ,lorsque je met le nom du fichier direct dans createfile en dur j'ai testé sa marche ou est mon erreur?

Merci encore
0
thegame88 Messages postés 12 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 15 juin 2009
15 juin 2009 à 20:55
Oups correction j'ai trouver mon erreur merci de votre aide les gars

A++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
16 juin 2009 à 16:02
Dis-nous ce que c'était : ça pourrait peut-être aider d'autres gens !
0
Rejoignez-nous