Inno setup Lecture erronée d'un fichier txt

Signaler
Messages postés
16
Date d'inscription
vendredi 7 avril 2017
Statut
Membre
Dernière intervention
22 janvier 2020
-
Messages postés
28
Date d'inscription
samedi 5 septembre 2020
Statut
Membre
Dernière intervention
11 septembre 2020
-
Bonjour,
Dans Inno Setup, à la lecture d'un fichier texte, je retrouve un espace inséré entre chaque lettre...
[Code]

function InitializeSetup(): Boolean;
var
  fileName: String;
  SNline: String;
  SNref: String;
  lines: TArrayOfString;
  FileLines: TArrayOfString;
  ResultRTN: Boolean;
  Index: Integer;
begin
  Result:=False;
  if not FileExists(ExpandConstant('{src}\RTN.txt')) then
  begin
    // reprise valeur SNline dans CSN.txt
    if FileExists(ExpandConstant('{src}\CSN.txt')) then
      SNref:= 'SerialNumber=R90JYZMER9N0B6227001'; 
      fileName:= ExpandConstant('{src}\CSN.txt');
      Index:=4;   
      Result:= LoadStringsFromFile(FileName, FileLines) and (GetArrayLength(FileLines) > Index);
      if Result then
        Result:= False;
        SNline := FileLines[Index];

        // création du RTN.txt pour Vérification de SNline : espaces insérés entre chaque item!)                 
        fileName:= ExpandConstant('{src}\RTN.txt');
        SetArrayLength(lines, 1);
        lines[0]:= SNline;
        ResultRTN := SaveStringsToFile(filename,lines,true);

        //Mauvaise identification du SN à cause des espaces insérés entre chaque item...
        //if SNline = SNref then
        //  Result:= True;
          
    end;
//...  
end;


Ce qui figure das le fichier : SerialNumber=R90JYZMER9N0B6227001
Ce que j'obtiens : S e r i a l N u m b e r = R 9 0 J Y Z M E R 9 N 0 B 6 2 2 7 0 0 1
J'ai beau chercher, je ne vois pas pourquoi, ni où est mon erreur.
Merci de votre aide.

1 réponse

Messages postés
28
Date d'inscription
samedi 5 septembre 2020
Statut
Membre
Dernière intervention
11 septembre 2020
1
Bonjour
Difficile de répondre sans savoir ce qui se trouve dans les fonctions utilisées ici.

De plus il n'y a apparemment pas de manipulation de caractères, ce sont des lignes, donc je dirais que le fichier final est enregistré en Unicode et non en ANSI et que la lecture se fait en ANSI, d'où l'ajout d'un caractère.

https://www.danysoft.com/estaticos/free/delphi-and-unicode-marco-cantu.pdf