Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Text ersetzen aus 2 Dateien (https://www.delphipraxis.net/120280-text-ersetzen-aus-2-dateien.html)

gasty 8. Sep 2008 16:29


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:

IDS_PROPITEM_TXT_000000
IDS_PROPITEM_TXT_000001 Hand
IDS_PROPITEM_TXT_000002 Penya
IDS_PROPITEM_TXT_000003 etc.
Und Datei2: (Excel)
Zitat:

Name
IDS_PROPITEM_TXT_000001
IDS_PROPITEM_TXT_000002
etc.
Also das "IDS_PROPITEM_TXT_000001" ist sogesehn eine "Variable" und ich möchte in Datei2 den Text "IDS_PROPITEM_TXT_000001" in "Hand" ändern, und das mit allen anderen auch.
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:

"A" "B"
ID.. Bla
... ...
Dann A mit B ersetzen.

Ich würde mich über Hilfe oder Vorlagen freuen.

toms 11. Sep 2008 07:14

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.

gasty 19. Sep 2008 13:26

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

nahpets 19. Sep 2008 13:52

Re: Text ersetzen aus 2 Dateien
 
Hallo,
Delphi-Quellcode:
sl.Delimiter := ' ';
sl.LoadFromFile('Datei1');
mit
Delphi-Quellcode:
 s := sl.Values['IDS_PROPITEM_TXT_000001']
sollte in s dann Hand stehen.

sl ist 'ne Stringliste, s ein String;

Stephan

alf.stefan 19. Sep 2008 14:36

Re: Text ersetzen aus 2 Dateien
 
Hallo oder vielleicht auch so

Delphi-Quellcode:
     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
in tList3 sollte dann die Liste so sein wie Du sie haben willst.
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