AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Anfangsbuchstaben eines Strings in Großbuchstaben umwandeln
Thema durchsuchen
Ansicht
Themen-Optionen

Anfangsbuchstaben eines Strings in Großbuchstaben umwandeln

Ein Thema von juLiii · begonnen am 9. Nov 2008 · letzter Beitrag vom 9. Nov 2008
Antwort Antwort
Seite 1 von 2  1 2      
juLiii

Registriert seit: 24. Mär 2008
20 Beiträge
 
#1

Anfangsbuchstaben eines Strings in Großbuchstaben umwandeln

  Alt 9. Nov 2008, 10:39
hallo zusammen!

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??

wäre toll wenn ihr mir helfen könntet

juLiii
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#2

Re: Anfangsbuchstaben eines Strings in Großbuchstaben umwand

  Alt 9. Nov 2008, 10:43
wort[1] := UpperCase(wort[1])
  Mit Zitat antworten Zitat
juLiii

Registriert seit: 24. Mär 2008
20 Beiträge
 
#3

Re: Anfangsbuchstaben eines Strings in Großbuchstaben umwand

  Alt 9. Nov 2008, 10:46
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??
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#4

Re: Anfangsbuchstaben eines Strings in Großbuchstaben umwand

  Alt 9. Nov 2008, 10:50
Zitat von juLiii:
[Pascal Fehler] Hangman.pas(959): E2010 Inkompatible Typen: 'Char' und 'string'
muss ich dann die Variable "Wort" als char und nicht als string verwenden??
Nein, Char ist ja nur ein Zeichen, string eine Zeichenkette. Dann probier mal ob das geht:

Delphi-Quellcode:
var
  FirstChar: string;
  wort: string;
begin
  FirstChar := wort[1];
  Result := UpperCase(FirstChar);
(Gibt aber so nur den Anfangsbuchstaben zurück, musst du dann wieder in Wort einsetzen )

Bzw. Vielleicht tuts auch kürzer
wort[1] := UpperCase(string(wort[1]))
  Mit Zitat antworten Zitat
Benutzerbild von pilic
pilic

Registriert seit: 10. Aug 2006
Ort: Aschbach
131 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Anfangsbuchstaben eines Strings in Großbuchstaben umwand

  Alt 9. Nov 2008, 10:50
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);
  Mit Zitat antworten Zitat
juLiii

Registriert seit: 24. Mär 2008
20 Beiträge
 
#6

Re: Anfangsbuchstaben eines Strings in Großbuchstaben umwand

  Alt 9. Nov 2008, 10:59
wahnsinn es funktioniert!!!!!

könntest du mir dann auch vl bitte erklären was dieser Code bedeutet??
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: Anfangsbuchstaben eines Strings in Großbuchstaben umwand

  Alt 9. Nov 2008, 11:00
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:
YourString[1] := AnsiUpperCase(YourString[1])[1]; 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)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
juLiii

Registriert seit: 24. Mär 2008
20 Beiträge
 
#8

Re: Anfangsbuchstaben eines Strings in Großbuchstaben umwand

  Alt 9. Nov 2008, 11:04
wow ihr seid toll!! jetzt bin ich endlich fertig

danke danke danke noch mal für die Hilfe
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Anfangsbuchstaben eines Strings in Großbuchstaben umwand

  Alt 9. Nov 2008, 11:08
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;
Markus Kinzler
  Mit Zitat antworten Zitat
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#10

Re: Anfangsbuchstaben eines Strings in Großbuchstaben umwand

  Alt 9. Nov 2008, 11:24
Haben die Jedis nicht eine passende Funktion? Aus der Rx-Library (die doch in der JVCL aufgegangen ist) hatte ich AnsiProperCase verwendet. Jürgen
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 08:56 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