AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Stringüberprüfung

Ein Thema von DelphiManiac · begonnen am 23. Jan 2007 · letzter Beitrag vom 23. Jan 2007
Antwort Antwort
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#1

Stringüberprüfung

  Alt 23. Jan 2007, 14:02
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
  Mit Zitat antworten Zitat
Benutzerbild von cruiser
cruiser

Registriert seit: 23. Dez 2003
Ort: Königsbrück/Sachsen
455 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Stringüberprüfung

  Alt 23. Jan 2007, 14:05
if UpperCase(Copy(Schnittstelle, 1, 3)) = 'COMthen {...};
  Mit Zitat antworten Zitat
Benutzerbild von Tormentor32
Tormentor32

Registriert seit: 27. Okt 2005
Ort: Düsseldorf
369 Beiträge
 
Delphi XE5 Professional
 
#3

Re: Stringüberprüfung

  Alt 23. Jan 2007, 14:06
if copy(Schnittstellenname,1,3) = 'COMthen ... Edit: Mist zu langsam
Richard Mahr
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Stringüberprüfung

  Alt 23. Jan 2007, 14:06
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.
  Mit Zitat antworten Zitat
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#5

Re: Stringüberprüfung

  Alt 23. Jan 2007, 14:30
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

Also Vielen Dank....

CLOSEroblem gelöst
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#6

Re: Stringüberprüfung

  Alt 23. Jan 2007, 15:32
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.
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von cruiser
cruiser

Registriert seit: 23. Dez 2003
Ort: Königsbrück/Sachsen
455 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Stringüberprüfung

  Alt 23. Jan 2007, 16:24
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
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Stringüberprüfung

  Alt 23. Jan 2007, 16:34
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.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#9

Re: Stringüberprüfung

  Alt 23. Jan 2007, 17:27
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 () 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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:47 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