Du bist neu in der Welt von C++? Dann schau hier herein!
pizza4ever
Beiträge: 21 Registriert: 4. November 2010 23:17
Beitrag
von pizza4ever » 6. Februar 2011 12:13
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 » 6. Februar 2011 12:42
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 » 6. Februar 2011 13:39
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 » 6. Februar 2011 20:47
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 » 7. Februar 2011 09:34
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 » 7. Februar 2011 09:40
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 » 7. Februar 2011 09:42
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 » 7. Februar 2011 12:26
?
Jap das stimmt