Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Fängt String mit Großbuchstaben an?


Danniolo - So 11.12.05 14:42
Titel: Fängt String mit Großbuchstaben an?
Ich hab folgendes Problem:
Ich möchte herausfinden, ob der erste Buchstabe in einem String groß oder klein geschrieben ist, allerdings habe ich dazu noch nichts wirklich verwertbares dazu gefunden, vlt. kann einer von euch mir helfen :roll:


Delete - So 11.12.05 14:48

Wandel das erste Zeichen in den korrespondierenden ASCII Code um mit der Funktion Ord und guck, ob der Wert innerhalb der Großbuchstaben liegt.


Gausi - So 11.12.05 14:50

Auf Anhieb würde ich das probieren

Delphi-Quelltext
1:
2:
3:
if meinstring[1in ['A'..'Z','Ä','Ö','Ü'then
showmessage('GROSS'else
showmessage('klein');


Danniolo - So 11.12.05 14:56

Vielen Dank, das funktioniert hervorragend! :D
Dankeschön für die schnelle Hilfe und entgegen den vielen negativen Stimmen dem DF und seinen Moderatoren in dieser Zeit gegenüber:
Delphi-Forum rulz! Ihr seid spitze!


Delete - So 11.12.05 14:59

user profile iconGausi hat folgendes geschrieben:
Auf Anhieb würde ich das probieren

Man sollte nicht nebenbei ein Gyros-Pizza essen. :roll:


Gausi - So 11.12.05 15:51

user profile iconLuckie hat folgendes geschrieben:
user profile iconGausi hat folgendes geschrieben:
Auf Anhieb würde ich das probieren

Man sollte nicht nebenbei ein Gyros-Pizza essen. :roll:

Das hab ich jetzt nicht verstanden. Was hat mein Posting mit einer Gyros-Pizza zu tun? :gruebel:


GTA-Place - So 11.12.05 16:20

Alternativ geht auch:

Delphi-Quelltext
1:
2:
3:
4:
  if LowerCase(MyString[1]) = MyString[1then
    ShowMessage('Klein')
  else
    ShowMessage('Groß');


Jailbird - So 11.12.05 17:23

ich würd noch checken, ob der string überhaupt einen inhalt hat


Delphi-Quelltext
1:
2:
3:
4:
if (Length(mystring) > 0and (mystring[1] = UpperCase(mystring[1])) then
  // gross
else
  // klein


DaRkFiRe - So 11.12.05 17:33

Ich empfinde diese Lösung persönlich die die beste...


Delphi-Quelltext
1:
2:
3:
if meinstring[1in ['A'..'Z','Ä','Ö','Ü'then
showmessage('GROSS'else
showmessage('klein');



und schlage vor, sie noch um Length zu erweitern, damit sie abgesichert wird.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
if (length(meinstring) > 0then
  begin
    if (meinstring[1in ['A'..'Z','Ä','Ö','Ü']) then
      showmessage('GROSS')
    else
      showmessage('klein');
  end
else
  showmessage('länge 0');


Ich würde Lowercase nicht noch mit einbauen. Prozeduraufrufe kosten Zeit.


Delete - Mo 12.12.05 00:22

[quote="user profile iconGausi"]
user profile iconLuckie hat folgendes geschrieben:
user profile iconGausi hat folgendes geschrieben:
Auf Anhieb würde ich das probieren

Man sollte nicht nebenbei ein Gyros-Pizza essen. :roll:


Deins nicht aber meins, weil meins umständlich ist und das kann nur an der Pizza gelegen haben. ;)


Stefan.Buchholtz - Mo 12.12.05 12:45

user profile iconGTA-Place hat folgendes geschrieben:
Alternativ geht auch:

Delphi-Quelltext
1:
2:
3:
4:
  if LowerCase(MyString[1]) = MyString[1then
    ShowMessage('Klein')
  else
    ShowMessage('Groß');


Wenn schon so, dann würde ich AnsiLowerCase verwenden, um auch Umlaute und sonstige landesspezifische Zeichen zu erschlagen. Die Lösung hat den Vorteil, dass sie sprachenunabhängig funktioniert.

Stefan