Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Mit Pos im String suchen, was weiter? (https://www.delphipraxis.net/3826-mit-pos-im-string-suchen-weiter.html)

Luckie 2. Apr 2003 13:54

Wie wäre es hiermit:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  p : PChar;
  i : Integer;
begin
  Edit1.Text := 'Hello world';
  i := 0;
  p := PChar(Edit1.Text);
  while p^ <> #0 do
  begin
    if p^ = 'l' then
      Inc(i);
    Inc(p);
  end;
  ShowMessage(IntToStr(i));
end;
Sollte recht effizient sei, da einfach nur der Zeiger auf das nächste Zeichen gesetzt wird.

Mist jetzt, poste ich in einem Thread schon zweimal den gleichen Code. :roll:

sakura 2. Apr 2003 13:54

Erstens: Du kannst den Code via Copy&Paste einsetzen und in jedem Programm einsetzen. Von daher ist die Länge eigentlich völlig nebensächlich.

Zweitens: Es tut mir leid, aber an der Qualität des Codes solltest Du solange nicht meckern, wie Du nicht verstehst, was darin genau vorgeht. Es stimmt, man kann den Code noch ein wenig auf Geschwindigkeit optimieren, aber davon wird der auch nicht kürzer, eher das Gegenteil.

Drittes: Wenn Du die Routine von Luckie durch Delphi nutzt, kannst Du nur nach Zeichenketten von einem Byte Länge (also Char) suchen, aber nicht nach längeren Substrings. Je nach dem, was Du wirklich suchst.

Viertens: Deine letzte Frage ist durch Luckies Beispiel extrem effizient beantwortet.

...:cat:...

P.S. Das musste jetzt mal raus :-D

freakTAB 2. Apr 2003 13:55

hmm, schon mal so versucht ? :
Delphi-Quellcode:

for i := 1 to length(s) do
   if s[i] = 'A' then inc(zaehler);
wobei i und zaehler integer sind und s der zu bearbeitende string ;)

Seikilos 2. Apr 2003 13:58

Nene, sorry, so meint ich das garnicht.
Der Code da mag sehr effizient sein, mit Qualität und Quantität mein ich: Qualität= Wie sinnvoll ist es, dass hat nix mit dem Code zutun, nur mit der Tatsache, wie oft jemand [ und ] als standalone text benutzt. Und quantität ist halt, dass es, wenn es einmal im jahr passiert, dass jemand ein [D schreibt nicht gerade lohnenswert ist,die exe aufzublähen.

Und das mit while is das selbe wie mit ner For schleife.

Also, danke an alle


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:59 Uhr.
Seite 2 von 2     12   

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