char wandeln
-
Dann kannst Du Dir doch jedes Zeichen aus Ausgabe holen und dieses in int konvertieren und in die textdatei einfügen. Also ungefähr so:
char *pAusgabe = ausgabe.GetBuffer( 0 ); int dezimal = 0; for( unsigned int index = 0; index < ausgabe.GetLength(); ++index ) { dezimal = static_cast< int >( pAusgabe[ index ] ); // und dezimal in die Textdatei einfügen }
-
wieder falsch.
ich möchte den CString ausgabe, den ich normal in einem editfeld eingebe, mit einem
String (wird in char kodiert[100] geschrieben) der textdatei vergleichen.der string soll aber in der textdatei dezimal drinstehen.beim vergleichen muss ich ja den dann
umwandeln.
-
Aber das is doch dasselbe Prinizip. Dann wandelst Du eben jedes Zeichen das Du eingelesen hast von int in char.
-
kann ich nicht.ich muss das aus der datei wandeln.also in textdatei müssen dezimalwerte stehen und die muss ich wandeln ins normale ausgabeformat.
-
hat denn keiner ne idee ???
-
Das Problem was Du damit haben wirst ist:
Gehen wir mal davon aus, es steht "656" in Deiner Textdatei.
Ist das nun:
"6" und "5" und "6"
oder
"65" und "6"
oder
"6" und "56" ???Solange Du kein Trennungszeichen zwischen die Zeichen (in deinem obigen Beispiel also):
49|54|49|49|51|67
packst, wirst Du das kaum lösen können...
(In meinem Beispiel hab ich nun das "|" als Trennungszeichen eingesetzt, das kannst Du aber frei wählen, z. B. auch ein "\n").
-
also jedes zeichen ist eigenständig, d.h ne 33042 ist dezimal ne 5151485250.
es kommen ja auch buchstaben drin vor.
-
du willst also eine maximal 100 byte lange Dezimalzahl in Hex wandeln und umgekehrt, oder ? Na das ist nicht _ganz_ so einfach da würde ich mir einen andern Weg für eine Seriennummer aussuchen z.B. md5hash
Joe
-
in der textdatei soll die seriennr. dezimal drinstehen.und die muss dann umgewandelt werden in ein normales druckbares zeichen.
text:48->im programm:0 usw.
die gewandelte zahl wird dann mit dem CString ausgabe verglichen, welcher eingegeben werden muss.
der char kodiert[100] kann auch bloß char kodiert[10] sein.
-
fevernova schrieb:
in der textdatei soll die seriennr. dezimal drinstehen.und die muss dann umgewandelt werden in ein normales druckbares zeichen.
text:48->im programm:0 usw.
die gewandelte zahl wird dann mit dem CString ausgabe verglichen, welcher eingegeben werden muss.
der char kodiert[100] kann auch bloß char kodiert[10] sein.also nehmen wir mal an ich habe dich richtig verstanden so steht also in der Datei:
1023
du liest das ein und hast einen Sting
char[4] ansi = "1023"
diesen möchtst du umwandeln in eine Zahl
in dem Fall
int zahl = atoi(ansi ); // nicht cpp und nicht Plattformunabhänig gibt es aber auch in std C solche Funktionen bin aber zu faul zum suchen
dann möchtest du diese in einen Strin in Hexformat wandeln
char[100] hex; itoa(zahl ,&hex, 16); // auch kein cpp und std c
ausserdem gibt es viele Beträge zu diesem Thema in diesem Forum und auch cpp kompatible Antworten. Einfach mal suchen!
Und alles was ich hier geschrieben habe ist quick und sehr dirty.
Joe