Darstellung eines float über QString
Verfasst: 30. Mai 2009 00:53
Hallo zusammen!
Ich liste die Dateien eines Verzeichnisses mit deren Größe in Byte und Megabyte auf. Dabei muss ich einen Methodenrückgabewert von int nach float umwandeln. Den daraus entstehenden float-Wert stelle ich über die Methode "sprintf" von QString dar. Allerdings benötigt diese Methode eine Instanz von QString. Gibt es noch eine einfachere Möglichkeit?
Und allgemein, kann man evtl. den nachfolgenden Code auch kürzer gestalten?
Ich liste die Dateien eines Verzeichnisses mit deren Größe in Byte und Megabyte auf. Dabei muss ich einen Methodenrückgabewert von int nach float umwandeln. Den daraus entstehenden float-Wert stelle ich über die Methode "sprintf" von QString dar. Allerdings benötigt diese Methode eine Instanz von QString. Gibt es noch eine einfachere Möglichkeit?
Und allgemein, kann man evtl. den nachfolgenden Code auch kürzer gestalten?
Code: Alles auswählen
QList<QFileInfo> files = dir.entryInfoList();
QList<QFileInfo>::Iterator it;
it = files.begin();
while(it != files.end()) {
if((*it).isDir()) {
str.append("[DIR]\t");
} else {
str.append("[FILE]\t");
}
str.append((*it).fileName());
str.append("\t\t");
str.append(QString::number((*it).size()));
str.append(" Byte\t\t");
float size = (float)(*it).size() / 1024 / 1024;
QString s;
str.append(s.sprintf("%5.3f", size));
str.append(" Megabyte\t");
str.append("\n");
++it;
}