Pour l’instant j’ai récupéré les données qui m’intéressent de la base GedCom et crée un fichier avec un enregistrement fixe de 200 pour chaque personne, ça a l’air d’être bon pour l’extraction des données aussi mais j’ai un problème avec FileSeek.
Jusqu’au 4 ème enregistrement ça marche super, mais ensuite il y a un décalage.
J’ai vérifié la position du début du 5 ème il est à 1000 et FileSeek(1,a.q) a.q=1000 mais il y a un décalage de -2 et ce n’est pas linéaire.
J’ai tenté de changer le type de variables mais c’est la même chose.
La fin de chaque fiche c’est des « *** » (du nom au dernier * c’est normalement 200 caractères).
Voila le fichier et le programme pour les enregistrements de 1 a 4 c’est ok, mais ensuite il y a un décalage de -2 pour le 5ème, - 3 pour le 7ème …
J’ai peut être pas tout compris a la manœuvre mais ça me chauffe quand même la tête.
Ligne 6 pour changer de N° d'enregistrement.
1 la base
2 le programme (avec pleins de Debug pour tenter de trouver la faille)
Merci a tous (j'ai encore dû me planter quelque part)
Code : Tout sélectionner
HERBELIN,Honore-Pierre-Alexandre,M,2,0,24 FEB 1835,Saint-Maixent,72320,Sarthe,Pays de la Loire,FRANCE,,22 FEB 1895,Saint-Maixent,72320,Sarthe,Pays de la Loire,FRANCE,**********************************DEBRAY,Louise-Victoire,F,2,0,4 APR 1838,Nogent-le-Bernard,72110,Sarthe,Pays de la Loire,FRANCE,,21 JUN 1918,Saint-Maixent,72320,Sarthe,Pays de la Loire,FRANCE,*****************************************HERBELIN,Pierre,M,3,0,25 JUN 1793,Saint-Maixent,72320,Sarthe,Pays de la Loire,FRANCE,,16 MAR 1869,Saint-Maixent,72320,Sarthe,Pays de la Loire,FRANCE,***************************************************RIGAULT,Marie-Louise,F,3,0,1794,Vibraye,72320,Sarthe,Pays de la Loire,FRANCE,,10 JUN 1862,Saint-Maixent,72320,Sarthe,Pays de la Loire,FRANCE,***********************************************************DEBRAY OU DEBRÉ,Charles Noel,M,5,0,25 DEC 1805,Gréez-sur-Roc,72320,Sarthe,Pays de la Loire,FRANCE,,,****************************************************************************************************ROUSSEAU,Marie Louise,F,5,0,3 MAY 1804,Cormes,72400,Sarthe,Pays de la Loire,FRANCE,,13 JAN 1858,Sceaux-sur-Huisne,72160,Sarthe,Pays de la Loire,FRANCE,*************************************************HERBELIN,Jean,M,7,0,20 SEP 1744,Jauzé,72110,Sarthe,Pays de la Loire,FRANCE,,22 JAN 1809,Saint-Maixent,72320,Sarthe,Pays de la Loire,FRANCE,*************************************************************BARRÉ,Louise,F,7,0,1757,,19 DEC 1803,Saint-Maixent,72320,Sarthe,Pays de la Loire,FRANCE,****************************************************************************************************************RIGAULT,Maurice Nicolas,M,9,0,26 AUG 1762,Vibraye,72320,Sarthe,Pays de la Loire,FRANCE,,,***************************************************************************************************************
Code : Tout sélectionner
EnableExplicit
Define long.l
Define Person.s, aa.s, i.l, rect.i
Define No.q
Define a.q
No=4 ;N° d'enregistrement
a=No*200
OpenFile(1,"D:\purebasic\recup gedcom\Base.TXT")
FileSeek(1,a); position de départ
Debug "Position de FileSeek : " + Str(Loc(1))
Debug " "
Person=ReadString(1, #PB_UTF8 ,200)
CloseFile(1)
long=Len(Person)
For i= 1 To long
If Mid(Person,i,1)<>","
aa+Mid(Person,i,1)
Else
Debug aa
aa=""
EndIf
Next
Debug "N° d'enregistrement : "+No
Debug " Fileseek :"+a