Problem mit CString
-
Morgen!
hab da folgendes Problem und zwar hab ich in meinem String einen Dateinamen stehen und jetzt will ich dass der immer am anfang eines Wortes mir einen Großbuchstaben schreibt, also den aktuellen Buchstaben durch einen Großbuchstaben ersetzt!
Kann mir da jemand Helfen?
Mein Dateiname sieht ungefähr so aus:
bla kla da - da sdo.mp3
Danke!
-
Hallo lies das erste Zeichen des strings aus, wandle es in einen char um und falls der Wert des char zwischen 97 und 122 liegt, ziehst du 32 ab. Jetzt mußt du das ganze nur noch in deinen string einfügen.
-
...oder das Zeichen in einen temporären CString schreiben und MakeUpper() benutzen.
Und dann noch mit CString::Find den Dateinamen nach Leerzeichen durchsuchen und das folgende Zeichen auch wieder gross machen.
-
Hab da foldenden Code jetzt:
void CRenamerDlg::MakeUpper(CString filename, CString filepath) { CFile file; CString oldname = filename; CString temp; temp = filename.GetAt(0); temp.MakeUpper(); filename.SetAt(0, temp); file.Rename(filepath + "\\" + oldname, filepath + "\\" + filename); }funktioniert aber nicht bekomme da immer folgenden Fehler wenn ich den String wieder hinzufüge:
error C2664: 'SetAt' : Konvertierung des Parameters 2 von 'class CString' in 'char' nicht moeglich
Woran liegt das?
-
Vielleicht war mein Vorschlag mit dem CString Mist. Wenn er schon ein char verlangt, dann probier doch mal den Vorschlag von drops.
-
oder so:
CString tmp(fileName[0]); tmp.MakeUpper(); fileName.Delete(0); fileName.Insert(0, tmp);fileName ist vom Type CString natürlich

-
Danke für die Vorschläge habs so wie drops geschrieben hat gemacht.

-
hier auch ne moeglichkeit
CString lol = "hallo"; AfxMessageBox(lol); CString onechar = lol.Mid(0,1); onechar.MakeUpper(); int lenght = lol.GetLength(); lol = lol.Right(lenght - 1); lol = onechar + lol; AfxMessageBox(lol);
-
lol, du bist witzig.
Statt dem ersten Mid(0,1) verwendet man normalerweise Left(1) und statt dem Right(length-1) verwendet man Mid(1)
-
deswegen auch die varibale lol

der user kann es uebernehmen ( es funzt )
aber bissle denken muss er selber wenn er optimieren will
nur copy paste ist zwar goil, bildet net sonderlich viel
-
lol.
Geile Ausrede
-
lol hab ich mir auch gedacht

"bitte nicht weitersagen
"