![]() |
Anfangsbuchstaben eines Strings in Großbuchstaben umwandeln
hallo zusammen! :hi:
Ich programmiere gerade - wie ich gesehen habe auch viele andere - HANGMAN für die Schule. Ich bin damit auch so gut wie fertig - ich habe nur mehr ein kleines Problem: erst lade ich alle Wörter einer Textdatei in ein Memo-Feld danach wird per Zufall eines dieser Wörter in ein Label-Feld geladen um dann mit den Groß- und Kleinbuchstaben kein Problem zu haben verkleinere ich alle mit: wort := lowercase(Wort) Nach dem Vergleichen der Buchstaben, wenn man auf die Buttons mit den Buchstaben von A-Z klickt, soll - wenn man das Wort nicht gelöst hat - das Lösungswort unterbei in einem Label-Feld erscheinen. Dabei möchte ich aber das nochmalige Laden der Datei aus dem Memo-Feld verhindern. Gibt es also eine Funktion bei der man bei einem Wort nur den Anfangsbuchstaben in einen Großbuchstaben umwandelt?? :gruebel: wäre toll wenn ihr mir helfen könntet :-D juLiii |
Re: Anfangsbuchstaben eines Strings in Großbuchstaben umwand
Delphi-Quellcode:
:stupid:
wort[1] := UpperCase(wort[1])
|
Re: Anfangsbuchstaben eines Strings in Großbuchstaben umwand
danke für die schnelle Antwort, aber dabei kommt eine Fehlermeldung:
[Pascal Fehler] Hangman.pas(959): E2010 Inkompatible Typen: 'Char' und 'string' muss ich dann die Variable "Wort" als char und nicht als string verwenden?? |
Re: Anfangsbuchstaben eines Strings in Großbuchstaben umwand
Zitat:
Delphi-Quellcode:
(Gibt aber so nur den Anfangsbuchstaben zurück, musst du dann wieder in Wort einsetzen ;) )
var
FirstChar: string; wort: string; begin FirstChar := wort[1]; Result := UpperCase(FirstChar); Bzw. Vielleicht tuts auch kürzer
Delphi-Quellcode:
:gruebel:
wort[1] := UpperCase(string(wort[1]))
|
Re: Anfangsbuchstaben eines Strings in Großbuchstaben umwand
Ich würde es so machen, da UpperCase scheinbar nur Strings akzeptiert.
Delphi-Quellcode:
if (Ord(wort[1]) >= $61) and (Ord(wort[1]) <= $7a) then
wort[1] := Chr(Ord(wort[1])-$20); |
Re: Anfangsbuchstaben eines Strings in Großbuchstaben umwand
wahnsinn es funktioniert!!!!! :cheer:
könntest du mir dann auch vl bitte erklären was dieser Code bedeutet?? |
Re: Anfangsbuchstaben eines Strings in Großbuchstaben umwand
Das Problem (der Fehlermeldung) ist das UpperCase einen String zurück gibt und diesen kann man nunmal nicht auf einen einzelnen char zuweisen. daher einfach:
Delphi-Quellcode:
Der Obige Code funktioniert übrigens nicht für deutsche Umlauge (der Code mit dem Ord welcher schaut ob das Zeichen im Bereich der kleinen Buchstaben liegt und wenn dem so ist die Differenz zu den Großbuchstaben subtrahiert)
YourString[1] := AnsiUpperCase(YourString[1])[1];
|
Re: Anfangsbuchstaben eines Strings in Großbuchstaben umwand
wow ihr seid toll!! :hello: jetzt bin ich endlich fertig :-D
danke danke danke noch mal für die Hilfe |
Re: Anfangsbuchstaben eines Strings in Großbuchstaben umwand
Einfach selber machen:
Delphi-Quellcode:
procedure Captialize( var str: AnsiString);
var i, j: integer; sl: TStrings; s, s2: AnsiString; c: AnsiChar; begin sl := TStringList.Create; sl.Delimiter := ' '; sl.StrictDelimiter := True; sl.DelimitedText := str; for i := 0 to sl.Count-1 do begin s := Sl[i]; c := s[1]; if c in ['a'..'z'] then begin s2 := c; s := UpperCase( s2) + Copy ( s, 2, Length(s)-1); end; sl[i] := s; end; str := sl.DelimitedText; sl.Free; end; |
Re: Anfangsbuchstaben eines Strings in Großbuchstaben umwand
Haben die Jedis nicht eine passende Funktion? Aus der Rx-Library (die doch in der JVCL aufgegangen ist) hatte ich AnsiProperCase verwendet. Jürgen
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:54 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