Ersetzen Sie einen text in eine Datei mit Inno Setup
Hallo ich habe ein problem mit dem ersetzen von text in einer Textdatei mit Inno Setup (Delphi basiert).
Mein Code:
procedure FileReplaceString(const FileName, searchstring, replacestring: string);
var
fs: TFileStream;
S: string;
begin
fs := TFileStream.Create(FileName, fmOpenread or fmShareDenyNone);
try
SetLength(S, fs.Size);
fs.ReadBuffer(S[1], fs.Size);
finally
fs.Free;
end;
{ the compiler stops here with: unknown identifier 'StringReplace' }
S := StringReplace(S, SearchString, replaceString, [rfReplaceAll, rfIgnoreCase]);
fs := TFileStream.Create(FileName, fmCreate);
try
fs.WriteBuffer(S[1], Length(S));
finally
fs.Free;
end;
end;
Fand ich heraus, dass ich StringChange()
anstelle, aber ich weiß nicht, wie es mit meinem code. Ich weiß nicht allzu viel über Delphi oder Inno Setup.
Ich hoffe Ihr könnt mir helfen.
Inno Setup != Delphi
. Inno Setup ist kompiliert in Delphi, aber es nutzt seine eigene Sprache auf Basis von Pascal-Skript.- Thx für deine Antwort. Wie also sollte ich ändern mein code jetzt.
- Wird, dass die Eingabe-Datei enthält Unicode-text ?
- Nein, nur einfacher text
- StringChange(s, SearchString, replaceString, True)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich hoffe, dass diese Funktion macht den job:
Großes Lob an TLama für feedback.
if StringChangeEx(...) > 0 then Assign text to string list and save
. Und dassOK
ist nicht notwendig. Geben Sie einfachFalse
zu denResult
als die erste Zeile und weisenTrue
nur, wenn es keine Ausnahme.OK
gut, bin ich also gebunden an ein "richtig" geschriebenen code, dass ich bin, herauszufinden,, dass der Bau verwirrend. Aber das ist wieder Geschmackssache 🙂