![]() |
Wie wäre es hiermit:
Delphi-Quellcode:
Sollte recht effizient sei, da einfach nur der Zeiger auf das nächste Zeichen gesetzt wird.
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; Mist jetzt, poste ich in einem Thread schon zweimal den gleichen Code. :roll: |
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 |
hmm, schon mal so versucht ? :
Delphi-Quellcode:
wobei i und zaehler integer sind und s der zu bearbeitende string ;)for i := 1 to length(s) do if s[i] = 'A' then inc(zaehler); |
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. |
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