024
04.09.2003, 13:59 Uhr
RHBaum
|
Zitat: |
Sind alle Klarheiten beseitigt, oder gibts noch Fragen?
|
Klar !
const char * QString::latin1 () const
Gibt dir nen Zeiger auf die Zeichenkette, die QString wrappt, im latin1 format zureuck.
Damit die ned ueberschreiben kannst, ist sie const ... klar.
C++: |
const char *dateiname;
dateiname=text.latin1();
|
ist also voellig korrekt !
Warum sollte er speicher fuer den String Allocieren ? Doch nur wenn er ihn auch kopieren will ! Und wenn speicher unter C++ Allocieren, dann doch bitte mit new, und nicht mit malloc !!!
C++: |
char * mystring = new char[100];
|
feigeben dann natuerlich mit delete !
Copieren gaenge dann mit sprintf oder strncpy ... was aber schlechter stil waere, weil C ! da das arbeiten mit den C Formatanweisungen aber noch gang un gebe ist ... die Arbeit mit Streams und unterschiedlichen Zahlenformaten in einem Stream ne Qual ist, Hat Trolltechtech die sprintf Funktion fuer ihre QString klasse implementiert !
sauberer waere :
C++: |
QFile myFile("~/test/testfile"); // file hier oeffnen im schreibmodus ! QString mytext;
bool ok=TRUE; mytext.sprintf("der dateiname lautet: %s\n", QInputDialog::getText( tr("Application name"), tr("Please enter your name"), QLineEdit::Normal, QString::null, &ok, this) ); QTextStream stream( &myFile ); stream << mytext; myFile.close();
|
-edit: Pablo: Smilies deaktiviert-- Dieser Post wurde am 04.09.2003 um 16:33 Uhr von Pablo Yanez Trujillo editiert. |