Seite 1 von 1

Ascii zu String und String zu ascii?

Verfasst: 16. September 2006 16:03
von kante23
Hallo,
ich bekomme ienfach nicht heraus, wie ich die Funktion lautet mit der man einen Ascii-Code in das Entsprechende Zeichen (also QString) und ein ZEichen in den entsprecheneden ASCII-Code umwandeln kann.
Wer weis es?
mfg Kante

ascii code nach qstring

Verfasst: 16. September 2006 21:30
von rmeeh
ich bekomme ienfach nicht heraus, wie ich die Funktion lautet mit der man einen Ascii-Code in das Entsprechende Zeichen (also QString) und ein ZEichen in den entsprecheneden ASCII-Code umwandeln kann.
Wer weis es?

--->
Hallo
ganz so einfach darfst Du Dir das nicht machen. Ein QString besteht aus UNICODE, d.h. ein Zeichen wird mit 2 Bytes dargestellt und nicht mit einem Ascii Zeichen.
Du kannst Dir jedoch einen normalen String also z.B. char[80] ohne Probleme zurechtbauen und jedem Zeichen einen beliebigen ascii Code zuweisen (e.g. ch[4]=64). Danach kannst Du das z.b. mit qstring1+=str; an einen Qstring anhängen (auch an einen leeren), die Umwandlung passiert dabei automatisch. Rückwarts bekommst Du dann wieder mit str=qstring1.ascii() einen "normalen" String.

Oder aber Du verwendest folgendes Member

"QString arg ( char a, int fieldWidth = 0 ) const"

Schau mal bei Trolltech auf die Homepage, in der Klassenbeschreibung von QString steht dieses Member und noch viele andere zu QString.
URL: http://doc.trolltech.com/3.3/qstring.html

Gruß Ralf

Verfasst: 16. September 2006 21:45
von tachyon
Also wenn Du wirklich einzelne Characters von QString nach char bzw. umgekehrt konvertieren willst, kannst Du das so machen:

Code: Alles auswählen

//Von char nach QString
QString _qString;
char _nCharacter = 'a';

_qString = _nCharacter;

//von QString nach char
char _nCharacter;
QString _qString = 'a';

_nCharacter = _qString.toStdString.c_str()[0];
Wenn Du die ASCII-Codes für einen ganzen String in die entsprechenden ASCII-Codes konvertieren willst, kannst Du den Array-Index natürlich auch variieren, also z.B. so:

Code: Alles auswählen

int _nLoop;
QString _qString = "Hallo Welt";
char _nCurrentASCII;
for(_nLoop = 0; _nLoop < _qString.size(); _nLoop++)
{
    _nCurrentASCII = _qString.toStdString.c_str()[_nLoop];
}
Ich hoffe, es ist das, was Du wolltest.