Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Prüfen, ob Anfang eines Strings stimmt (https://www.delphipraxis.net/95566-pruefen-ob-anfang-eines-strings-stimmt.html)

DenSchub 9. Jul 2007 16:21


Prüfen, ob Anfang eines Strings stimmt
 
Hallo.

Ich häng grad an nem kleinen Tool...
Ich will prüfen, ob die ersten 7 Zeichen eines Strings = einem anderen String machen.
Wie mache ich das??

Dennis

:wall: Meine Kristallkugel ist kaputt

Bernhard Geyer 9. Jul 2007 16:23

Re: Prüfen, ob Anfang eines Strings stimmt
 
Delphi-Quellcode:
Pos('1234567', vergleichstext) = 1

DenSchub 9. Jul 2007 16:26

Re: Prüfen, ob Anfang eines Strings stimmt
 
:lol:

...Danke...

Ich leide an Gedächtnisschwund...

Dennis

Der_Unwissende 9. Jul 2007 16:33

Re: Prüfen, ob Anfang eines Strings stimmt
 
Zitat:

Zitat von Bernhard Geyer
Delphi-Quellcode:
Pos('1234567', vergleichstext) = 1

Bei seeeehr langen Strings könnte auch das kopieren der ersten 7 Zeichen sinnvoll sein

Delphi-Quellcode:
if copy(string, 1, 7) = vergleichstring then
...
Stimmt natürlich nur, wenn ich richtig liege und Delphi erstmal Pos auswertet. Dann würden auch alle hinteren Stellen betrachtet werden, ohne dass dies relevant ist. Greift hier die Codeoptimierung nehme ich es natürlich gerne zurück! (Perfomancegewinn dürfte eh erst bei sehr langen Strings entstehen)

Gruß Der Unwissende

SirThornberry 9. Jul 2007 16:34

Re: Prüfen, ob Anfang eines Strings stimmt
 
wobei pos nicht die optimale Lösung ist. Denn wenn der String 5000000 Zeichen lang ist und die Zeichen nicht vorkommen oder nicht am Ende sind wird trotzdem bis zum Ende der String durchsucht was eine weile dauern kann.
Je nach Delphiversion gibt es da spezielle Funktionen. Bei allen Delphiversionen sollte folgendes funktionieren:
Delphi-Quellcode:
if (copy(fullstr, 1, Length(substr)) = substr) then
  //gefunden
oder CompareMem verwenden.

@Der_Unwissende: Die Codeoptimierung könnte da nicht greifen denn sonst müsste sie die Funktion pos ändern und das macht so gut wie keine automatische Codeoptimierung.

Der_Unwissende 9. Jul 2007 16:39

Re: Prüfen, ob Anfang eines Strings stimmt
 
Zitat:

Zitat von SirThornberry
@Der_Unwissende: Die Codeoptimierung könnte da nicht greifen denn sonst müsste sie die Funktion pos ändern und das macht so gut wie keine automatische Codeoptimierung.

Hab im Moment viel mit funktionaler Programmierung gearbeitet, wenn man das ganze mit Bedarfsauswertung angeht, dann würde es halt gut optimiert werden, natürlich klar, dass das kaum ein Optimierer ernsthaft machen dürfte, aber ich wollte mich mal nicht zu weit aus dem Fenster lehnen.

DenSchub 9. Jul 2007 16:39

Re: Prüfen, ob Anfang eines Strings stimmt
 
Naja, es handelt sich um einen URL-Konvertor, also wird der String wohl nicht 50000 zeichen lang sein.
Trozdem danke, werde es mir merken.

Dennis


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:27 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