WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   Text in Hex (http://www.wcm.at/forum/showthread.php?t=36106)

mqs 13.11.2001 13:39

Text in Hex
 
Also ich hab ein kleines Problem beim Text in Hex zu convertieren.
Und zwar Convertiert er schon richtig, aber bei Hex zahlen, die zuerst eine Null haben und dann die zahl bzw den buchstaben lässt er beim ausgeben die Null weg.
Ich hab mal nen Screenshot gemacht
http://nrg.strikenet.at/txt2hex.jpg
Wie kann ich die Hexzahlen ausgeben, damit ich auch die Nullen im Text habe?

Source Code:
t=0
For i = 0 To Len(Text1.Text) - 1
Text1.SelStart = t
Text1.SelLength = 1
e$ = Asc(Text1.SelText)
Text2.Text = Text2.Text & Hex(e$) & space1$
t=t+1
Next i

Vielleicht kann mir da einer helfen. Danke im Vorraus

mqs 13.11.2001 14:06

ajo des ganze in visual basic , hab ich vergessen zu schreiben

_m3 13.11.2001 14:20

Also in Pseudocode (hab schon lang nicht mehr VB in der Hand gehabt) würde ich sagen:

Wenn $e <= 9 dann
Text2.Text = Text2.Text & "0" & Hex(e$) & space1$
sonst
Text2.Text = Text2.Text & Hex(e$) & space1$

Sonic 14.11.2001 15:49

Hier mein Code-Vorschalg:

Code:

For i = 1 To Len(Text1.Text)
 e$ = Asc(mid$(text1.text,i,1))
 e$ = "0" & Hex(e$)
 e$ = right(e$,2)
 Text2.Text = Text2.Text & e$ & space1$
Next i

Erklärung:

Ich hab dein Text1.SelStart = t: Text1.SelLength = 1: e$ = Asc(Text1.SelText) durch
e$ = Asc(mid$(text1.text,i,1)) ersetzt.

mid$(string, anfang, länge) gibt, <länge> Zeichen von <string> von <anfang> weg, zurück. Es ist schneller und "schöner" als diene methode. ;)

dann hänge ich einfach eine 0 vor dem Hex und schreib es in e$ zurück. Jetzt ist an 1. Stelle immer eine 0 und dann folgen ein oder 2 stellen.

right (<string>, <länge>) liest <länge> zeichen von rechts aus <string>.
Dass heisst er schneidet entweder die anfangs null weg (nämlich wenn hex 2 stellen liefert) oder nimmt den ganzen string (0 & ergebniss von hex).

Hoffe geholfen zu haben.

lg

Sesa_Mina 14.11.2001 16:00

Code:

Dim E as string, I as long, txt as string
for I=1 to len(text1.text)
  E=hex(mid$(text1.text,I,1)
  txt=string(2-len(E),"0") & txt &" "
  if len(txt)=12 then txt=txt &" " : text2.text=text2.text & txt : txt=""
next
text2.text=text2.text & txt

damit sollte es auch klappen :)

der hex code wird auch noch schön formatiert und dadurch dass nicht immer einzelne zeichen zum textfeld hinzugefügt werden sondern ein längerer string geht das ganze auch noch schneller. hübsche formatierung ist auch noch drin :)


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:18 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag