![]() |
Suchen und ersetzen
Hi,
ich versuche gerade nach einer gefühlten Ewigkeit wieder was mit Delphi zu programmieren und merke, dass ich mit vielen Sachen nicht mehr klar komme und weder die Hilfe noch google mir helfen will ;) In meinem Prog möchte ich einen Text nach bestimmten evtl. mehrzeiligen Zeichenfolgen durchsuchen und diese dann durch andere Zeichenfolgen ersetzen, wobei der alte Text erhalten bleiben soll und zusätzlich der neue Text angezeigt wird. Dazu hab ich mir zunächst gedacht, ich kopier den Text in Memobox1, gebe das zu suchende in Memobox2 und das wodurch ersetzt werden soll in Memobox3. Dann speicher ich den Inhalt von Memobox1 in ner Variable (da weiß ich schon nicht was fürn typ die Variable sein muss, kann die ein einfacher string sein?) und durchsuch die dann nach dem Inhalt von Memobox2. Zum durchsuchen ist mir bisher aber auch nur ne schleife eingefallen, die bei jedem Zeichen prüft, ob das Zeichen und die folgenden mit dem Inhalt der Memobox2 übereinstimmt. Dabei frag ich mich, ob das denn überhaupt mit den Zeilenumbrüchen funktionieren würde, oder obs da schon scheitert. Am Ende wirds dann in Memobox3 ausgegeben. Das ganze kommt mir aber sehr umständlich vor, da gibts doch sicher was eleganteres, oder? Danke schonmal für eure Hilfe! |
AW: Suchen und ersetzen
Ein einfacher String macht sich zum Erstetzen wohl am Besten.
Ansonsten ![]() ![]() ![]() ![]() oder einfach nur ![]() Oder sogar direkt im Memo (das ist aber eher langsam), über Pos/PosEx, ![]() ![]() ![]() |
AW: Suchen und ersetzen
Du kannst es aber auch mit der Funktion StringReplace machen. Hier ein Ansatz..darauf kannst du aufbauen:
Delphi-Quellcode:
unit Unit2;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm2 = class(TForm) Original: TMemo; Neu: TMemo; Suchen: TEdit; Ersetzen: TEdit; Start: TButton; Start2: TButton; procedure StartClick(Sender: TObject); procedure Start2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form2: TForm2; implementation {$R *.dfm} //Suchen & Ersetzen - Line-By-Line procedure TForm2.StartClick(Sender: TObject); var CopyText: TStringList; i: Integer; begin CopyText:=TStringList.Create; try CopyText.Text:=Original.Text; for i:=0 to CopyText.Count-1 do if Pos(Suchen.Text,CopyText.Strings[i])>0 then CopyText.Strings[i]:=StringReplace(CopyText.Strings[i], Suchen.Text, Ersetzen.Text,[rfReplaceAll, rfIgnoreCase]); Neu.Text:=CopyText.Text; finally CopyText.Free; end; end; //Suchen & Ersetzen - Gesamt Text procedure TForm2.Start2Click(Sender: TObject); var CopyText: TStringList; begin CopyText:=TStringList.Create; try CopyText.Text:=Original.Text; CopyText.Text:=StringReplace(CopyText.Text, Suchen.Text, Ersetzen.Text,[rfReplaceAll, rfIgnoreCase]); Neu.Text:=CopyText.Text; finally CopyText.Free; end; end; end. |
AW: Suchen und ersetzen
Ist der Helm kaputt oder warum nur in Code-Tags gesetzt?
EDIT: ahhh Selbstheilung :mrgreen: |
AW: Suchen und ersetzen
Mein letzter Edit war 5 nach 12 :) Dein Post kam 6 nach :bounce1:
|
AW: Suchen und ersetzen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:51 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