[Linux] Problème de lecture de fichier texte
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 :
Citation:
0xb7d05678'
01/02/2008'#9'-9,5'#9....etc
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 :
Citation:
'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.
Quel est le problème et comment le corriger ou le contourner ?
Ci-joint le code de ma procédure :
Code:
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; |
Question supplémentaire : quelle police pour avoir les bons caractères accentués dans l'EDI de Lazarus ?
Merci d'avance