Seite 1 von 1

QString Dateinamen Zusammenbauen

Verfasst: 6. Februar 2011 12:13
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

Verfasst: 6. Februar 2011 12:42
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ß

Verfasst: 6. Februar 2011 13:39
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 ;)

Verfasst: 6. Februar 2011 20:47
von pizza4ever
danke für die Alternativen. Es spricht aber nichts gegen meine Lösung, wenn ich das richtig sehe, odeR?


Gruß

Verfasst: 7. Februar 2011 09:34
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.

Verfasst: 7. Februar 2011 09:40
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.

Verfasst: 7. Februar 2011 09:42
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.

Verfasst: 7. Februar 2011 12:26
von kater

Code: Alles auswählen

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