QString Dateinamen Zusammenbauen

Du bist neu in der Welt von C++? Dann schau hier herein!
Antworten
pizza4ever
Beiträge: 21
Registriert: 4. November 2010 23:17

QString Dateinamen Zusammenbauen

Beitrag von pizza4ever »

Hallo,

ich möchte mir einen Dateinamen zusammenbauen und ein Bild dann so abspeichern.
z.B. c:\dir\1.bmp
c:\dir\2.bmp

so möchte ich die Dateinamen im QString haben (mit jedem Schleifendurchlauf anders).

Nun habe ich folgendes Versucht:

Code: Alles auswählen

QString FileName("C:/Output/");
QString TempName;
//Schleife
TempName = FileName;
TempName.append((char)global_count++); //Laufvariable
TempName.append(".bmp");
Aber leider ist TempName am Ende immer noch nur C:/Output/ ohne den Dateinnamen.

Kann mir jemand bitte erklären wieso?

Danke
pizza4ever
Beiträge: 21
Registriert: 4. November 2010 23:17

Beitrag von pizza4ever »

Code: Alles auswählen

				
TempName = FileName;
TempName.append(QString::number(++global_count));
TempName.append(".bmp");
So läufts... Wenn jemand noch eine bessere Idee hat bin cih gerne für Alternativen offen.

Gruß
kater
Beiträge: 306
Registriert: 29. Dezember 2009 01:13
Wohnort: Darmstadt

Beitrag von kater »

QString & QString::sprintf ( const char * cformat, ... )

QString a = QString::sprintf("C:\\dir\\%i.bmp",++global_count);

Frei aus dem Kopf heraus. Keine Gewähr auf Syntaxfehler ;)
pizza4ever
Beiträge: 21
Registriert: 4. November 2010 23:17

Beitrag von pizza4ever »

danke für die Alternativen. Es spricht aber nichts gegen meine Lösung, wenn ich das richtig sehe, odeR?


Gruß
RavenIV
Beiträge: 267
Registriert: 21. Januar 2009 14:24
Wohnort: Waldshut

Beitrag von RavenIV »

pizza4ever hat geschrieben:danke für die Alternativen. Es spricht aber nichts gegen meine Lösung, wenn ich das richtig sehe, odeR?
Doch.
Es wird nämlich nicht "1" oder "2" angehängt, sondern das entsprechende ASCII-Zeichen. Und die Zeichen unterhalb von dezimal 32 sind eben nicht druckbar. Der QString hört dann dort auf.
Linux, das längste Text-Adventure aller Zeiten
kater
Beiträge: 306
Registriert: 29. Dezember 2009 01:13
Wohnort: Darmstadt

Beitrag von kater »

RavenIV hat geschrieben:Es wird nämlich nicht "1" oder "2" angehängt, sondern das entsprechende ASCII-Zeichen. Und die Zeichen unterhalb von dezimal 32 sind eben nicht druckbar.

Code: Alles auswählen

TempName = FileName;
TempName.append(QString::number(++global_count));
TempName.append(".bmp");
Warum? QString::number() nimmt ein int entgegen und gibt ein QString zurück.
RavenIV
Beiträge: 267
Registriert: 21. Januar 2009 14:24
Wohnort: Waldshut

Beitrag von RavenIV »

kater hat geschrieben:
RavenIV hat geschrieben:Es wird nämlich nicht "1" oder "2" angehängt, sondern das entsprechende ASCII-Zeichen. Und die Zeichen unterhalb von dezimal 32 sind eben nicht druckbar.

Code: Alles auswählen

TempName = FileName;
TempName.append(QString::number(++global_count));
TempName.append(".bmp");
Warum? QString::number() nimmt ein int entgegen und gibt ein QString zurück.
Dieses code-Schnipsel hab ich auch nicht gemeint.
Bei meinem Beitrag geht es um des code mit dem Casten zu char.
Linux, das längste Text-Adventure aller Zeiten
kater
Beiträge: 306
Registriert: 29. Dezember 2009 01:13
Wohnort: Darmstadt

Beitrag von kater »

Code: Alles auswählen

TempName.append((char)global_count++); //Laufvariable 
?
Jap das stimmt :)
Antworten