Net-srac Geschrieben 26. Juni 2001 Teilen Geschrieben 26. Juni 2001 Hi, weiß von euch einer, wie ich Werte die in einem Textfeld eingegeben werden z.b. als int in einen Hexadezimalen wert umwandeln kann. Also 10 -> 0A usw.? Und wie ich in einer Datei das n-te Byte in dieses eingelesene Byte ändern kann? Also ich würde sie öffnen und in einen CString einlesen, aber wie kann ich da auf bestimmte Werte zugreifen. gibt es sowas wie Lenght() ? Weil ich genau auf 8byte die 2byte vor dem ende der Datei liegen greifen soll. Thnx4Help FaFo Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
WasserWichtel Geschrieben 26. Juni 2001 Teilen Geschrieben 26. Juni 2001 Für die Umwandlung eines Integer kannst du folgenden Befehl verwenden: itoa(int,str,16); wobei int deine Zahl ist und str ein Pointer auf eine Zeichenkette. Die 16 gibt an, daß die Umwandlung auf der Basis 16 (also im Hexadezimalsystem) durchgeführt werden soll. Die Funktion steht übrigens in der stdlib.h. CU WW Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
gajUli Geschrieben 26. Juni 2001 Teilen Geschrieben 26. Juni 2001 Original erstellt von WW: <STRONG>Für die Umwandlung eines Integer kannst du folgenden Befehl verwenden: itoa(int,str,16); </STRONG> Nicht automatisch. itoa() gehoert IMHO nicht zum ANSI-Bibliotheksumfang von <stdlib.h>, sondern ist eine Erweiterung von Visual-C++. Uli Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Cool-Matthias Geschrieben 26. Juni 2001 Teilen Geschrieben 26. Juni 2001 Für deine zweite Frage würd ich nen Seek auf die Position n machen und den Wert einfach schreiben. (Ein Hex-Zeichen gibst du mit 0x an also z.B für Hex 04 0x04) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
toosten Geschrieben 26. Juni 2001 Teilen Geschrieben 26. Juni 2001 #include <iostream.h> int text_zu_dec(char* string) { int i =0, dec =0 , ziffer; while (string[i] != '\0') //solange nicht Stringende { ziffer = string[i]-'0'; //zeichen zur zahl machen i++; if (ziffer<10 && ziffer >=0)//wenn dec = dec *10 + ziffer; else //sonst string[i] ='\0'; //war keine Ziffer - String beenden } return dec; //rückgabe dezimalzahl } void dec_zu_hextext(char* string, int dec) { char puffer[20]; //max 20 Hexziffern int i=0, x; while (dec>0) //solange dezimalzahl>0 { puffer[i] = dec%16 +'0'; //rest von dec/16 zur ziffer if (puffer[i]>'9') puffer[i] += 'A'-'9'; //wenn es keine ziffer ist //ist es ein Buchstabe von A bis F dec = dec/16; //dividieren durch hexbreite i++; } i--; //letzte i++ weg x =i; //in x merken while (i>=0) { string[i] = puffer[x-i]; //hexziffern von hinten in den string i--; } if (x==0) {string[x] ='0'; x++;} //falls dec=0 war string[x+1] ='h'; //h für hex ran string[x+2] ='\0'; //und stringende } void main(void) { char text[20]; cout<<"Dezimalzahl eingeben:"; cin>>text; dec_zu_hextext(text,text_zu_dec(text)); cout<<text<<endl; } Ich hoffe das es das war was du suchst ;-). toosten [http://toosten.bei.t-online.de/] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
maddin Geschrieben 28. Juni 2001 Teilen Geschrieben 28. Juni 2001 mit einem CString gibt es da noch drei andere funktionen die ganz gut laufen könnten. die erste ist um eine bestimmtes zeichen zu bekommen. sie lautet GetAt(int nIndex); Beispiel: CString tmp = "dies ist ein test"; tmp.GetAt(5); // liefert das 5. Zeichen (zählung von 0) also das i um mehr als ein zeichen zu bekommen helfen die funktionen Right(int nIndex) und Left(int nIndex), die jeweils nIndex viele zeichen von der entprechenden Seite zurückgeben. Beipiel: CString tmp = "dies ist ein test"; (tmp.Right(8)).Left(3); // liefert 8 zeichen von links und davon 3 zeichen von rechts also "ein" //langform CString x; x = tmp.Right(8); x = x.Left(3); Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Net-srac Geschrieben 29. Juni 2001 Autor Teilen Geschrieben 29. Juni 2001 krasse sache man! Many thnx@all. Aber was machen, wenn ich nun einen binären String, angenommen\x1e\x0\x0\x7e in einen CString lesen will, dann schneitet er mir ihn doch eigentlich nach dem 0x00 ab oder? Ja! Wie kann ich denn sowas umgehen? Hab mal glaub ich irgendwas von getbuffer gehört, weiß aber nicht wie ich es löse. Thnx4Help Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
toosten Geschrieben 30. Juni 2001 Teilen Geschrieben 30. Juni 2001 Ich hab jetzt zu dem Thema was auf meine HP gepackt. http://toosten.bei.t-online.de/ Programmieren -> C und C++ -> Horner-Schema. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.