Es geht auch mit 3 oder 2
Aber insgesamt ergibt es keinen Sinn.
-> Die Liste in sich selbst ersetzen, mit ihrem eigenem Dateinamen.
Ich habe das mit zwei Dateien hinbekommen. Läuft durch und funktioniert. Aber Du hast recht:
Mit zwei Dateien zu arbeiten bringt so nichts und wäre zu fehleranfällig.
Jetzt muss ich mir was anderes überlegen.
Code:
procedure TForm1.Button1Click(Sender: TObject);
var
slist: TStringlist;
liste_alt: String;
liste_neu: String;
i: integer;
begin
slist := TStringlist.create;
liste_alt := 'c:\users\Julia\documents\embarcadero\studio\projekte\stringreplace\
win32\debug\liste_alt.txt';
liste_neu := 'c:\users\Julia\documents\embarcadero\studio\projekte\stringreplace\
win32\debug\liste_neu.txt';
slist.LoadFromFile(liste_alt);
for i := 0 to slist.Count -1 do
begin
slist.text := StringReplace(slist.Text , liste_alt , liste_neu , [rfReplaceAll]);
end;
slist.SaveToFile(liste_neu);
slist.Free;
end;
Hintergrund:
In der Firma arbeiten die meisten im Homeoffice.
Andere an Standorten.
Die Liste, die ich zum Weiterverarbeiten bekomme, enthält Fehler, wo der Mitarbeiter gerade arbeitet.
Dazu kommen spontane Wechsel zwischen Homeoffice und Standort.
Dazu kommen noch andere Daten, die weiterverarbeitet werden müssen, aber die sind Konstant.
Ich weise erst mal jedem Mitarbeiter das Homeoffice (ca. 95%) zu und mit StringReplace
ändere ich dann von Homeoffice/Stadt oder Stadt/Homeoffice.
Das funktioniert auch soweit, nur muss ich halt das Programm bei Änderungen neu Kompilieren.
Bin ich krank oder im Urlaub, greifen die Kolleginnen wieder zu Ausdrucken und Excel-Dateien
(So, wie sie es gelernt haben und können), um die Daten abzugleichen.
(Wie langsam doch so ein Tag vergeht
Deswegen wollte ich eine Liste mit Namen und Standorten aus dem Programm auslagern.
Man ändert schnell den Standort und der Rest wird wie sonst weiterverarbeitet. Fertig.
Das Program steht. Denn der Arbeitsaufwand, ob ich die Stadt in Delphi oder im Text ändere, ist gleich.
Ich spare mir halt das Kompilieren und die Kolleginnen brauchen mich nicht unbedingt.