Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi if - vergleich mit Teilstring? (https://www.delphipraxis.net/98755-if-vergleich-mit-teilstring.html)

cRayZo 31. Aug 2007 19:31


if - vergleich mit Teilstring?
 
Wie kann ich es erreichen, bei einer If-Abfrage nur die ersten 'x' Zeichen zu vergleichen und die stellen dahinter zu ignorieren?

Beispiel:

text:=hallo, wie gehts dir?
//
Wenn die ersten 5 Zeichen von 'Text' "Hallo" ergeben, dann Aktion

Den Vergleich mit einem Buchstaben krieg ich hin:
if text[1]='H' then aktion es hapert halt nur an den mehreren Buchstaben!

Wenn das auch ohne schleife geht, wär das echt gut!!

mfg, cRayZo

mkinzler 31. Aug 2007 19:31

Re: if - vergleich mit Teilstring?
 
Copy()

FAlter 31. Aug 2007 19:34

Re: if - vergleich mit Teilstring?
 
Hi,

da gibt es mehrere Möglichkeiten:

Wie bereits erwähnt, Copy:
Delphi-Quellcode:
 if Copy(MyStr, 1, 5) = 'ABCDE' then ...
Oder per Pos:
Delphi-Quellcode:
if Pos('ABCDE', MyStr) = 1 then ...
würden mir spontan einfallen. Was schneller ist weiß ich jetzt aber nicht.

Mfg
FAlter

jim_raynor 31. Aug 2007 19:37

Re: if - vergleich mit Teilstring?
 
oder mit:

Delphi-Quellcode:
if StrLComp(PChar(text),'Hallo')=0 then
Es gibt unzählig viele Varianten ;)

mkinzler 31. Aug 2007 19:39

Re: if - vergleich mit Teilstring?
 
z.Bb. noch StrScan()

marabu 31. Aug 2007 19:56

Re: if - vergleich mit Teilstring?
 
Nicht zu vergessen: LeftStr() und AnsiStartsStr() bzw. AnsiStartsText().

cRayZo 31. Aug 2007 21:43

Re: if - vergleich mit Teilstring?
 
:spin: :lol:

okay^also ich habs jetzt einfach mal mit Copy gemacht.
Trotzdem danke für die Antworten.

Nur noch eine Frage:
Delphi-Quellcode:
if StrLComp(PChar(text),'Hallo')=0 then
wie funktioniert dieser Code? Suchte der im string 'text' nach "Hallo" ? oder wie jetzt?^^

DeddyH 31. Aug 2007 21:51

Re: if - vergleich mit Teilstring?
 
Zitat:

Zitat von Delphi-Hilfe
Die Funktion vergleicht zwei Strings bis zu einem bestimmten Zeichen.

Unit

SysUtils

Kategorie

String-Verarbeitung (nullterminiert)

Delphi-Syntax:

function StrLComp(const Str1, Str2: PChar; MaxLen: Cardinal): Integer;

C++ Syntax:

extern PACKAGE int __fastcall StrLComp(const char * Str1, const char * Str2, unsigned MaxLen);

Beschreibung

StrLCompvergleicht bis zu MaxLen Zeichen der beiden Strings Str1 und Str2. In der folgenden Tabelle sind die Rückgabewerte erläutert:

Rückgabewert Bedingung

<0 Str1 kommt vor Str2
=0 Str1 ist mit Str2 identisch
>0 Str1 kommt nach Str2

Hinweis: Verwenden Sie bei der Arbeit mit internationalen Zeichen die Funktion AnsiStrLComp.

F1 wirkt manchmal Wunder ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:32 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz