Lire fichier par la fin

Résolu
thegame88 Messages postés 12 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 15 juin 2009 - 15 juin 2009 à 01:23
thegame88 Messages postés 12 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 15 juin 2009 - 15 juin 2009 à 13:08
Bonjour,

J'ai un fichier dans lequel il y a 7 lignes. Ce fichier contient 103 caractères, ce que j'aimerais faire c'est mettre dans une variable char les caractères à partir du 87 ème caractères. Ce que je veux en faite c'est obtenir les 16 derniers caractères du fichier dans une variable char.

Merci d'avance pour votre aide

5 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
15 juin 2009 à 09:47
HANDLE hfl;
DWORD rw;
char buf[16];


hfl = CreateFile(NomDuFichier, GENERIC_READ, 0, 0, OPEN_EXISTING, 0, 0);
if(hfl == INVALID_HANDLE_VALUE) return;
SetFilePointer(hfl, 87, 0, FILE_BEGIN);
ReadFile(hfl, buf, 16, &rw, 0);
CloseHandle(hfl);
if(rw != 16) return;


Ici tu peux continuer, fichier est refermé et il y a 16 octets dans buf[].

ciao...
BruNews, MVP VC++
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
15 juin 2009 à 12:53
Parce que tu as oublié de maitriser le C avant de vouloir faire un prog fini.
Une chaine de caractère est une suite d'octets finissant au 1er ZERO rencontré !!!


Comme tu demandais de lire 16 octets sans mentionner que tu afficherais cela en tant que chaine, je n'ai pas mis de 0 finisseur, suffit d'en mettre un:
char buf[20];
// CODE PLUS HAUT IDEM
// if(rw != 16) return;
buf[16] = 0;

ciao...
BruNews, MVP VC++
3
thegame88 Messages postés 12 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 15 juin 2009
15 juin 2009 à 12:03
Super merci c'est exactement ce que je voulais sa arche nikel un grand 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 à 12:47
En faite il y a un petit souci quand même :)

Lorsque j'exécute mon code que je le compile tout fonctionne correctement, mais quand j'affiche ma chaine de caractères contenu dans buf il me met 1dtx7vr50$> alors que dans mon fichier il n'y a que 1dtx7vr5? Pourquoi je récupère 0$> ?

Merci d'avance
0

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

Posez votre question
thegame88 Messages postés 12 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 15 juin 2009
15 juin 2009 à 13:08
Merci beaucoup mec moi je chercher avec EOF mais c'était pas sa merci beaucoup de ton  aide sa marche nikel maintenant
0
Rejoignez-nous