begin process at 2012 05 30 03:09:12
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

Fichier & Disque

 > 

Lire les 6 dernier octets d'un fichier?


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

Lire les 6 dernier octets d'un fichier?

samedi 10 juin 2006 à 23:23:55 | Lire les 6 dernier octets d'un fichier?

supergrey

Bonjour, je souhaite lire les 6 derniers octets d'un fichier j'ai écris le code suivant mais ca n'a pas l'air de marché car byteread est à zéro:

 char IDWEB[6];
 DWORD byteread=0;

 DWORD taille = 0;
 HANDLE hfl = CreateFile("temp", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_FLAG_SEQUENTIAL_SCAN, NULL);
 SetFilePointer(hfl,5,NULL,FILE_END);
 ReadFile(hfl,IDWEB,6,&byteread,NULL);
 CloseHandle(hfl);

Bon je ne suis pas sur s'il faut mettre 5 ou 6 pour setfilepointer mais je ne pense pas que le probleme vienne de la.

 

Merci

dimanche 11 juin 2006 à 00:09:08 | Re : Lire les 6 dernier octets d'un fichier?

SAKingdom

Membre Club
char IDWEB[7];
 DWORD byteread=0;  DWORD taille = 0;
 HANDLE hfl = CreateFile("temp", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_FLAG_SEQUENTIAL_SCAN, NULL);
 SetFilePointer(hfl,-6,NULL,FILE_END);
 ReadFile(hfl,IDWEB,6,&byteread,NULL);
 CloseHandle(hfl);
IDWEB[6] = 0;

essais ça

___________________________________________
Les plus grands esprits trouvent toujours une solution

dimanche 11 juin 2006 à 00:19:07 | Re : Lire les 6 dernier octets d'un fichier?

SAKingdom

Membre Club
Et si tu n'est pas sûr de la taille, je te conseillerais de tester la taille avant d'éfectuer une lecture:

if(GetFileSize(hfl, 0) < 6)
{
        MessageBox(0, "Taille du fichier insufisante", "Problème", MB_ICONHAND);
        CloseHandle(hfl);
        return 0;
}

___________________________________________
Les plus grands esprits trouvent toujours une solution

dimanche 11 juin 2006 à 07:54:20 | Re : Lire les 6 dernier octets d'un fichier?

supergrey

Ok, merci. Par contre pourquoi pas faire:
char IDWEB[6];
 DWORD byteread=0;  DWORD taille = 0;
 HANDLE hfl = CreateFile("temp", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_FLAG_SEQUENTIAL_SCAN, NULL);
 SetFilePointer(hfl,-6,NULL,FILE_END);
 ReadFile(hfl,IDWEB,6,&byteread,NULL);
 CloseHandle(hfl);

dimanche 11 juin 2006 à 11:38:16 | Re : Lire les 6 dernier octets d'un fichier?

vecchio56

Administrateur CodeS-SourceS
Réponse acceptée !
Pour lire 6 octets, il suffit d'en réserver 6 (le zéro terminal n'est pas obligatoire). Je pense qu'il faut mettre -6 dans SetFilePointer, car 0 = fin, -1 = 1 avant la fin, donc -6 = 6 avant la fin Regarde si ton hfl est bien valide, peut être que CreateFile a échoué Ca ne semble pas être FILE_FLAG_SEQUENTIAL_SCAN qui pose problème, cependant tu devrais l'enlever, car il est déconseillé quand tu fais des déplacement aléatoires dans le fichier (If an application moves the file pointer for random access, optimum caching may not occur. However, correct operation is still guaranteed.)
dimanche 11 juin 2006 à 14:38:49 | Re : Lire les 6 dernier octets d'un fichier?

SAKingdom

Membre Club
Réponse acceptée !
Salut vecchio. Pour SetFilePointer, c'est exactement ce que je disais. Ensuite si je reserve une place pour le 0 terminal c'est que j'ai tester ce que j'ai écrit et sans 0 terminal, toute sorte de caractère s'écrive après les 6 derniers. D'accord si c'est seulement pour "traiter" les 6 caractères indépendament mais si il veut affichers la chaine avec printf ou autre, c'est là que le problème apparaitra. Ce n'est qu'une précotion de ma part.
___________________________________________
Les plus grands esprits trouvent toujours une solution



Cette discussion est classée dans : fichier, lire, octets, byteread, hfl


Répondre à ce message

Sujets en rapport avec ce message

lire un fichier binaire bit par bit [ par MrDimanche ] Bonjour,Voila mon problème : j'ai un fichier binaire à lire, et j'utilise un "ifstream" puit get... Ca marche très bien, mais ça lit les données octet lire un fichier en C dont je ne connait pas l'extension [ par benrad ] Bonjourj'ai un fichier avec une extension .dldje suis en train de bosser sur une dll en CJ'aurais voulu savoir comment je pouvais stocker le contenu d ADO, lire un fichier Excel [ par mqsi ] salut tous mes chers(es) collègues,S'il vous plait si vous avez une idée sur comment lire un fichier Excel ,et merci d'avance. recuperer le commentaire d un fichier windows [ par un_debut ] Bonjours,   < Ouvrie et lire le contenu d'un fichier(débutant inside) [ par psicoblues ] Bonjour, voilà je me lance dans le monde du dévelopement avec pour langage le C.J'ai installé un turbo C sur un MS-DOS 6.2, sur un vieux Pentium.Pour Lire un fichier txt variable. [ par totoscill ] Bonjour à tous.J'effectue des mesures. Le nombre de ces mesures est variables. Je stocke ces mesures dans un fichier.J'aimerais effectuer un phase de Lire la nième ligne d'un fichier texte [ par boninou ] Bonjour à tous !J'aurais voulu savoir comment lire la nième ligne d'un fichier texte en C.Que dois-je utiliser ? fgets? je dois me deplacer avec fseek Lire un fichier texte et mettre les donnees dans un tableau [ par t047554 ] Bonjour a tous,Je suis un debutant en c et j'aimerai bien arrive a résoudre mon probleme.Voila mon probleme, j'aimerai lire un fichier texte qui a un lire dans un fichier [ par tonio140 ] bonjour à tous, j'utilise dans mon programme un fichier texte dan lequel j'ai déjà écrit de s données sous forme de trois colonnes (ville1, ville2, lire un fichier .txt [ par inconnu2nulpar ] slt, dans un fichier .txt j'ai des coordonné de point sous la forme :x1,y1x2,y2...mais je ne sait pas comment les récupéré et les mettre dans un table


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

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 : 11,216 sec (3)

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