Re: Schnellste Moeglichkeit Buchstaben in einem String zu finden?



Hallo,

Ich finde, sie wird mit jedem Bier schöner:

Sie ist kurz und prägnant.

function IsAcceptedMAF(PS: PChar): Boolean;
begin
 while not IsAcceptedCharArray[PS^] do Inc(PS);
 Result:= PS^ <> #0;
end;

Aber richtig verstehen tut man sie erst wenn man tief darüber nachdenkt. Das ist bei den anderen Varianten nicht so. Also braucht es mindestens deshalb einen Kommentar. Außerdem braucht es den wegen der Beschränkung der Allgemeinheit, weil Nullen im String anders als man es erwartet nun doch verboten sind.

Nein, auch die Deklaration des Eingabeparameters als PChar
rettet Dich davor nicht. Denn erstens ist PChar <> "Nullterminierter
String", wir sind keine C-ler. Und zweitens kann man sie ohne
Hinweis auf den potentiellen Fehler mit einem AnsiString aufrufen.
StringReplace() tappt in diese Falle und versagt bei eingebetteten
Nullen kläglich und unnötigerweise.

Also kommen wir bei zwei Codezeilen und fünf oder zehn für
Kommentare raus. Bei so einem Verhältnis werde ich dann
meist skeptisch, das riecht nach "zu schlau" :-). Kann aber auch
einfach sein, daß ich zu dumm bin.

Ciao, MM
--
Marian Aldenhövel, Rosenhain 23, 53123 Bonn. +49 228 624013.
http://www.marian-aldenhoevel.de
"It's easy to make a small fortune in aviation,
 provided you start with a big one"
.



Relevant Pages

  • Re: Dll help with string parameters
    ... procedure FormShow(Sender: TObject); ... {Private declarations} ... PChar read FInfo1 write FInfo1; ... Declare Info1 and Info2 as string. ...
    (borland.public.delphi.thirdpartytools.general)
  • Re: C Header Conversion Problems
    ... It is never necessary to cast string literals to PChar. ... let's see the declaration of TKVListFree. ... I think the call to TKVListFree should be sufficient. ...
    (comp.lang.pascal.delphi.misc)
  • Re: StrPas question
    ... > I kind of baffled why the StrPas function is so simple. ... > the program can then do with the source string whatever it wants after that. ... That's what already happens when you assign a PChar to a string. ... calling SetString, then you can just as well do the assignment directly. ...
    (alt.comp.lang.borland-delphi)
  • String Linienweise lesen...
    ... Ich habe einen String, der mitunter bis zu ca. 1.000 Zeilen mit Text ... [tabulator oder blank]weitere Information zur gleichen ID wie zeile ... Kommentar: Blablabla ... Plz: 42111\r\n ...
    (microsoft.public.de.german.entwickler.dotnet.csharp)
  • Re: Pchar(x) Zuweisung
    ... function Test(n: Integer): PChar; ... für den String herausrückt. ... Das richtige Ergebnis könntest Du bekommen, wenn Du den ersten PChar gleich verarbeitest, bevor der Speicher vom zweiten Aufruf überschrieben wird. ...
    (de.comp.lang.delphi.misc)