![]() |
zeichen durchlaufen und bestimmte Zeichenfolge finden
Wunderschönen guten morgen,
ich habe folgendes Problem: ich möchte in einem memo die zeichen einzeln durchlaufen und dabei nach einer bestimmten Zeichenfolge suchen. es darum herauszufinden wo Postleitzahlen stehen also 5-stellige Zahlen. hatte an sowas gedacht:
Delphi-Quellcode:
hat da jemand ne hilfe?
for i:= 0 to length(memo1.text) do
begin if zeichen = zahl then begin //hier ist das Problem! zähler:= zähler +1; end; if zähler:=5 then begin in memo zeilenumbruch einfügen an stelle (zeichen-5) end; end; ich will nicht 10 IF-Anweisungen hintereinander durchlaufen. kann man das in eine Schreiben? sowas wie if zeichen = (#48..#57) then... danke gruß Jority |
Re: zeichen durchlaufen und bestimmte Zeichenfolge finden
Delphi-Quellcode:
Dabei muss Zeichen vom Typ Char sein.
if Zeichen in [#48..#57] then
|
Re: zeichen durchlaufen und bestimmte Zeichenfolge finden
ich glaube so geht es nicht weil:
1. die zeichen die durchlaufen werden deutlich mehr als 255 sind 2. in der variable zeichen im moment das abzugleichende zeichen steht also z.B. 'a' oder ich hab deine antwort jetzt falsch verstanden :gruebel: trotzdem danke gruß jority |
Re: zeichen durchlaufen und bestimmte Zeichenfolge finden
So:
Delphi-Quellcode:
Hier wird jede Ziffer durch ein '_' ersetzt. Solltest du auf einen Zeilenumbruch: #13#10 anpassen können.
procedure TForm1.Button1Click(Sender: TObject);
var s: String; Loop: Integer; begin s := Edit1.Text; for Loop := 1 to length(s) do begin if (s[Loop] in [#48..#57]) then s[Loop] := '_'; end; Edit1.Text := s; end; |
Re: zeichen durchlaufen und bestimmte Zeichenfolge finden
Guten Morgen nochmal,
hab es jetzt so gelöst:
Delphi-Quellcode:
weiß nämlich nicht wie ich an genau der stelle also im prinzip i-5 die zeichen #10#13 einfüge.
Zähler := 0;
for i:=0 to length(memo1.Text) do begin vergleich:= copy(memo1.text,i,1); if vergleich >= chr(48) then begin if vergleich <= chr(57) then begin zeichen:=zeichen+1; end; end; if zeichen:=5 then begin //so und jetzt möchte ich im memo 5stellen zurückspringen und dort einen zeilenumbruch //einfügen. nur da weiß ich nicht weiter end; end; danke gruß jority [edit=Luckie]Delphi-Tags korrigiert. Mfg, Luckie[/edit] |
Re: zeichen durchlaufen und bestimmte Zeichenfolge finden
Hi,
verstehe ich da jetzt was falsch, oder würde nicht ein simples if pos(Postleitzahl, text) > 0 dein Problem lösen. Grüsse Woki |
Re: zeichen durchlaufen und bestimmte Zeichenfolge finden
Mit Selstart kannst du die aktuelle Position des Cursors setzen.
#13 als String verwendet erzeugt einen Zeilenumbruch. z.B. s:='Sehr geehrte Damen und Herren,'+#13+#13+'...'; ergibt: Sehr geehrte Damen und Herren, ... |
Re: zeichen durchlaufen und bestimmte Zeichenfolge finden
Ein Zeilenumbruch unter Windows ist #13#10. #13 Mag auch gehen, ist aber nicht korrekt.
|
Re: zeichen durchlaufen und bestimmte Zeichenfolge finden
@woki
dazu müsste er doch definieren was Postleitzahl ist. Die kann u.U. unterschiedlich sein |
Re: zeichen durchlaufen und bestimmte Zeichenfolge finden
Moin!
Ich habe bei ![]() Ich bin mir nicht sicher, aber ich glaube es gibt auch andere Implemetirungen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:11 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