J'ai un problème avec la lecture de fichier texte formaté sous Linux et Lazarus.
J'utilise une petite application sous Delphi 4 et XP qui lit un fichier texte de type *.xls que je décortique ensuite pour en utiliser les éléments dans une base de données.
Cherchant à passer sous Linux et Lazarus, je réécris mon application mais voilà j'ai un problème : sous Lazarus et Linux, le début de mon fichier comprend des caractères "nuisibles" par exemple :
La même procédure pour le même fichier sous XP me donne via un point d'arrêt et l'évaluateur de Lazarus :0xb7d05678'
01/02/2008'#9'-9,5'#9....etc
Sous Delphi, j'ai le même résultat que ci-dessus, si je regarde les valeurs du fichier via un éditeur hexa je n'ai en début de fichier avant le codage de la date la valeur hexa : 20 qui est sauf erreur le codage d'un espace.'01/02/2008'#9'-9,5'#9...etc
Quel est le problème et comment le corriger ou le contourner ?
Ci-joint le code de ma procédure :
Question supplémentaire : quelle police pour avoir les bons caractères accentués dans l'EDI de Lazarus ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 procedure TFImport.ChoixLectureFichier; {ouverture fichier texte} begin MEXTENSION:=Copy(OpenDialog1.FileName,Length(OpenDialog1.FileName)-2,3); MEXTENSION:=UpperCase(MEXTENSION); if OpenDialog1.FileName<>'' then begin AssignFile(FICHIER, OpenDialog1.FileName);{ Fichier dans la boe} MFICHIER:=OpenDialog1.FileName; Reset(FICHIER); TAMPON:=''; Readln(FICHIER,XTAMPON); { Lecture premier ligne du fichier } while XTAMPON<>'' do begin TAMPON:=TAMPON+XTAMPON+#10; Readln(FICHIER,XTAMPON); { Lecture ligne suivante du fichier } end; if MEXTENSION='XLS' then ExtractionXls; CloseFile(FICHIER); end else begin MessageDLG ('Erreur, pas de fichier selectione', mtError, [mbCancel],0); end; end;
Merci d'avance
Partager