Inno setup Lecture erronée d'un fichier txt

Rataxes64 Messages postés 15 Date d'inscription vendredi 7 avril 2017 Statut Membre Dernière intervention 22 janvier 2020 - Modifié le 22 janv. 2020 à 20:08
pprem Messages postés 30 Date d'inscription samedi 5 septembre 2020 Statut Membre Dernière intervention 22 octobre 2020 - 5 sept. 2020 à 12:02
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

pprem Messages postés 30 Date d'inscription samedi 5 septembre 2020 Statut Membre Dernière intervention 22 octobre 2020 1
5 sept. 2020 à 12:02
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
0
Rejoignez-nous