![]() |
Text ersetzen aus 2 Dateien
Hallo an alle :D
Also mein Problem ist folgendes: Ich möchte gerne einen Text aus Datei1 mit einem anderen aus Datei2 ersetzen. Ich würde das gerne in Delphi schreiben, also wäre meine erste Frage: Ist das möglich? Die zweite Frage wäre dann, wie? Ich denke es ist einfacher zu verstehn wenn ich einfach zeige was ich will :P Also Datei1: (txt) Zitat:
Zitat:
Das wäre dann ungefähr wie das "Suchen & Ersetzen" aus dem Editor, nur eben das er automatisch eine Liste durcharbeitet und aus 2 Dateien die Infos nimmt. Oder noch einfacher wäre vielleicht so: Zitat:
Ich würde mich über Hilfe oder Vorlagen freuen. |
Re: Text ersetzen aus 2 Dateien
Hallo
Theoretisch geht's so: Gehe in Datei1 Zeile für Zeile durch wobei jeweils die "Variable" und der "Text" getrennt werden. z.B aus IDS_PROPITEM_TXT_000001 Hand wird: -> Variable: IDS_PROPITEM_TXT_00000 -> Wert : Hand Danach suchst du in der Excel Datei nach der Variable und falls gefunden, wird sie durch Hand ersetzt. Falls du spezifische Fragen zur Umsetzung hast, kannst du diese hier gerne stellen. |
Re: Text ersetzen aus 2 Dateien
Ja, genau so wollte ich das machen :D
Also meine Fragen sind, wie kann ich die Variablen deklarieren? Also dass er z.b. als Seperator Leerzeichen nimmt und dann die Liste automatisch durchgeht, da es ca. 4000 Einträge sind will ich es nicht von Hand machen :lol: Und wie kann ich das mit dem Ersetzen umsetzen? Danke für die Hilfe, gasty |
Re: Text ersetzen aus 2 Dateien
Hallo,
Delphi-Quellcode:
mit
sl.Delimiter := ' ';
sl.LoadFromFile('Datei1');
Delphi-Quellcode:
sollte in s dann Hand stehen.
s := sl.Values['IDS_PROPITEM_TXT_000001']
sl ist 'ne Stringliste, s ein String; Stephan |
Re: Text ersetzen aus 2 Dateien
Hallo oder vielleicht auch so
Delphi-Quellcode:
in tList3 sollte dann die Liste so sein wie Du sie haben willst.
tList1 := TStringList.Create;
tList2 := TStringList.Create; tList1.LoadFromFile('File1.txt'); tList2.LoadFromFile('File2.txt'); tList3 := TStringList.Create; // name und value sinf durch space getrennt tList1.NameValueSeparator := #32; for loop2 := 0 to tList2.Count-1 do begin theString := tList2.Strings[loop2]; for loop1 := 0 to tList1.Count-1 do begin if length(tList1.Names[loop1]) > 1 then if pos(tList1.Names[loop1],tList2.Strings[loop2])>0 then begin theString:= AnsiReplaceStr(tList2.Strings[loop2], tList1.Names[loop1], tList1.ValueFromIndex[loop1]); break; end; end; tList3.Append(theString); end; // listen abspeichern und freigeben um AnsiReplaceString zu verwenden muss die Unit strUrils eingebunden werden. Gruß Stefan |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz