Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi zeichen durchlaufen und bestimmte Zeichenfolge finden (https://www.delphipraxis.net/14377-zeichen-durchlaufen-und-bestimmte-zeichenfolge-finden.html)

jority 8. Jan 2004 07:27


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:
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;
hat da jemand ne hilfe?
ich will nicht 10 IF-Anweisungen hintereinander durchlaufen.
kann man das in eine Schreiben?
sowas wie
if zeichen = (#48..#57) then...

danke
gruß Jority

Luckie 8. Jan 2004 07:30

Re: zeichen durchlaufen und bestimmte Zeichenfolge finden
 
Delphi-Quellcode:
if Zeichen in [#48..#57] then
Dabei muss Zeichen vom Typ Char sein.

jority 8. Jan 2004 07:51

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

Luckie 8. Jan 2004 08:41

Re: zeichen durchlaufen und bestimmte Zeichenfolge finden
 
So:
Delphi-Quellcode:
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;
Hier wird jede Ziffer durch ein '_' ersetzt. Solltest du auf einen Zeilenumbruch: #13#10 anpassen können.

jority 8. Jan 2004 08:43

Re: zeichen durchlaufen und bestimmte Zeichenfolge finden
 
Guten Morgen nochmal,

hab es jetzt so gelöst:
Delphi-Quellcode:
 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;
weiß nämlich nicht wie ich an genau der stelle also im prinzip i-5 die zeichen #10#13 einfüge.

danke
gruß jority

[edit=Luckie]Delphi-Tags korrigiert. Mfg, Luckie[/edit]

woki 8. Jan 2004 08:52

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

Minz 8. Jan 2004 08:57

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,

...

Luckie 8. Jan 2004 08:59

Re: zeichen durchlaufen und bestimmte Zeichenfolge finden
 
Ein Zeilenumbruch unter Windows ist #13#10. #13 Mag auch gehen, ist aber nicht korrekt.

Minz 8. Jan 2004 08:59

Re: zeichen durchlaufen und bestimmte Zeichenfolge finden
 
@woki

dazu müsste er doch definieren was Postleitzahl ist.

Die kann u.U. unterschiedlich sein

galex 8. Jan 2004 09:40

Re: zeichen durchlaufen und bestimmte Zeichenfolge finden
 
Moin!

Ich habe bei SynEdit 1.1 eine "Regular Expression" Komponente gesehen.
Ich bin mir nicht sicher, aber ich glaube es gibt auch andere Implemetirungen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:11 Uhr.
Seite 1 von 2  1 2      

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