Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Stringüberprüfung (https://www.delphipraxis.net/84903-stringueberpruefung.html)

DelphiManiac 23. Jan 2007 14:02


Stringüberprüfung
 
Hallo,
ich habe nur ein kleines Problem:

Ich habe einen String:
zb:

Delphi-Quellcode:
var
Schnittstellenname:string;
begin
Schnittstellenname:='COM1';
..
Nun will ich wissen ob es eine Serielle Schnittstelle (Kriterium alle String mit 'COM')
ist.

Also ich will eine Überprüfung der ersten drei Zeichen machen.
Wie kann ich dass am Besten machen?

Danke
Gruß DelphiManiac

cruiser 23. Jan 2007 14:05

Re: Stringüberprüfung
 
Delphi-Quellcode:
if UpperCase(Copy(Schnittstelle, 1, 3)) = 'COM' then {...};

Tormentor32 23. Jan 2007 14:06

Re: Stringüberprüfung
 
Delphi-Quellcode:
if copy(Schnittstellenname,1,3) = 'COM' then ...
Edit: Mist zu langsam :???:

Matze 23. Jan 2007 14:06

Re: Stringüberprüfung
 
Zitat:

Zitat von DelphiManiac
Also ich will eine Überprüfung der ersten drei Zeichen machen.
Wie kann ich dass am Besten machen?

Delphi-Quellcode:
if Pos('COM', StringVariable) = 1 then
   // Der String fängt mit 'COM' an

Edit: Huch, da waren wohl andere schneller. ;)

DelphiManiac 23. Jan 2007 14:30

Re: Stringüberprüfung
 
Hey Klasse,

gleich drei verschiedene Lösungswege :-)

Werde es mit Pos machen, da es mir ja den Teilstring überprüft.
Die anderen Möglichkeiten gehen natürlich auch, aber für eine muss man sich ja entscheiden :lol:

Also Vielen Dank....

CLOSE:Problem gelöst

xZise 23. Jan 2007 15:32

Re: Stringüberprüfung
 
Zitat:

Zitat von DelphiManiac
gleich drei verschiedene Lösungswege :-)

Eigentlich nur zwei, weil die beiden ersten das gleiche machen, außer das bei dem 1. die Großschreibung irrelevant ist.

cruiser 23. Jan 2007 16:24

Re: Stringüberprüfung
 
Wobei man auch die zweite Version mit caseignore ausstatten kann *matzes Beispiel grabsch*

Delphi-Quellcode:
if Pos('COM', UpperCase(StringVariable)) = 1 then
   // Der String fängt mit 'COM' oder 'com' oder 'CoM' oder .... an

SirThornberry 23. Jan 2007 16:34

Re: Stringüberprüfung
 
welche Delphiversion hast du? Je nach Delphiversio gibt es funktion die x zeischen von Links zurück geben. Die Verwendung von Pos ist eher unelegant weil bei einem sehr langen String der gesammte lange String bis zum Ende geprüft wird obwohl ja die ersten 3 Zeischen die relevanten sind.

Der_Unwissende 23. Jan 2007 17:27

Re: Stringüberprüfung
 
Zitat:

Zitat von DelphiManiac
Nun will ich wissen ob es eine Serielle Schnittstelle (Kriterium alle String mit 'COM')
ist.

Hi,
ich weiß nicht wie scharf dein Kriterium ist. Bin mir schon nicht sicher, ob es nicht (z.B. bei virtuellen COM-Ports) möglich ist einen anderen Namen zu wählen. Genauso kann es aber natürlich auch möglich (wenn auch unwahrscheinlich) sein, dass z.B. ein USB-Schnittstelle (:wink:) einen Namen mit COM besitzt (also das Gerät an der Schnittstelle oder was auch immer).

Da bietet die Unit CPort (oder wie die Unit von TComport heißt) eine Funktion Enum... (Glaube EnumComPorts oder so), der kannst Du eine StringListe übergeben und diese wird mit allen Namen der installierten RS-232 Schnittstellen gefüllt. Schaust Du in dieser Liste nach, ob der entsprechende Name eingetragen ist (StringList.IndexOf(SchnittstellenName) > -1), bist Du imho auf der sicheren Seite. Wie gesagt, ist eher selten und unwahrscheinlich hier einen anderen Namen zu finden, aber gerade wenn jmd. einen RS-232 Wandler verwendet weiß man nie.

Gruß Der Unwissende


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