Programmieren - alles kontrollieren 4.935 Themen, 20.621 Beiträge

C++ 2010 Express Form: Anzeige von Hex Zahlen in Textbox

Sigi Saudi / 14 Antworten / Flachansicht Nickles

Hallo Gemeinde,

Ich hatte vor einigen Jahrzehnten mit Borland C++ programmiert und fand nun heraus, dass Microsoft C++ 2010 Express kostenlos abgibt. Ich hatte mir die Anwendung heruntergeladen und installiert. (Kaufen lohnt nicht, weil ich dafuer zu wenig programmiere).

Ich befasse mich mit der Lyrik Synchronisierung von MIDI Karaoke Dateien und fuege dort unter anderem an Stellen, wo es erforderlich ist, Texte wie "(instrumental)" usw. ein. Die Synchronisierung habe ich bisher immer "zu Fuss" gemacht, was in jedem Einzelfall eine fuerchterliche bitweise Rechnerei ist. Mit C++ habe ich mir eine Console-App geschrieben, die mir die Arbeit abnimmt. Die App funktioniert einwandfrei.

Nun versuchte ich, diese App in eine C++ 2010 Form zu programmieren. Die Rechnerei, z. B. mit dem bitweisen Verschieben von unsigned int Inhalten funktioniert. Das Problem ist nur die Ein- und Ausgabe, die hexadezimal erfolgen muss. Ich habe lange im Internet recherchiert, habe aber keine Methode gefunden, wie ich mit Textboxen Hex-Ein- Ausgaben machen kann. Wenn ich eine Hex-Zahl in den erforderlichen Ausgabestring fuer eine Textbox umwandle, wird das Dezimalaequivalent der Zahl angezeigt..

Weiss jemand einen Rat, wie man mit C++ 2010 Express in Textboxen auf Forms Hexadezimalzahlen ausgeben kann?

Vielen Dank und Gruss aus dem damned too hot Thailand

Sigi Saudi .

Gruesse aus Wang Nam Kiaw / Thailand
bei Antwort benachrichtigen
Sigi Saudi Borlander „Doch: Mit dem Paramter toBase 16 bekommst Du da einen HexString raus. Verwendest Du denn tatsächlich auch das .NET ...“
Optionen

Hallo Borlander,

Nach einigen Irrwegen habe ich es mit Deinen Hinweisen nun hinbekommen, eine int-Zahl als Hex Zahl auszugeben. Der Code in C++ 2010 Express ist

int hexint = 127;

int toBase = 16;

tbTempC->Text = Convert::ToString(hexint, toBase);

wobei tbTempC die Ausgabe-Textbox in der Form ist. die Zahl hexint = 127 wurde als 7f ausgegeben.

Nun muss ich mich noch mit dem Input als Hexzahl beschaeftigen und damit, wie ich Hexwerte mit Grossbuchstaben anzeigen kann. Oder weisst Du eine Methode?

Das Net-Framwork verwende ich nicht, auch nicht C#, sondern C++ 2010, das Microsoft mit Freischaltcode kostenlos abgibt. Ich programmiere eher selten, nur, um laestige, wiederkehrende Rechenroutinen in Anwendungen zu giessen und da lohnt sich fuer mich der Kauf von C# nicht.

Z. Z. hatte ich gerade das Problem, dass ich mit meinem Hex Editor in Karaoke-Midi Dateien zusaetzliche Texte einbringen wollte, wie z. B. (instrumental), wenn instrumental-Solos ohne Text gespielt werden. Dazu muss man den Zeitversatz, der das Solospiel in der Text-Musik Synchronisation repraesentiert, auf die einzelnen Buchstaben des einzufuegenden Worts aufteilen. Weil der Zeitversatz hexadezimal und zusaetzlich codiert ist, muss man zur Ermittlung des Dezimalwertes die Bits eines jeden Bytes des Versatzes hin- und herschieben, einzelne Bits herausunden, teilen durch die Anzahl der Zeichen, neu kodieren durch Verschiebung und bits hereinodern und dann am Ende hexadezimal neu ausgeben. Das laesst sich zu Fuss machen, geht aber mit einer Anwendung viel einfacher. Die Console Anwendung funktioniert schon, aber nun moechte ich das ganze wegen der besseren Handhabung als C++ Windows Form programmieren.

Das ist der Hintergrund.

Gruss

Siegfried

Gruesse aus Wang Nam Kiaw / Thailand
bei Antwort benachrichtigen