Seite 1 von 1
Hexadezimalzahl aus String filtern
Verfasst: 03.11.2004 19:36
von Kekskiller
Ich habe ein enorm unangenehmes Problem, welches eigentlich aus meiner
Sicht noch unbequemer zu lösen ist. Ich möchte, wie es mit einer normalen
absoluten Zahl möglich ist, eine Hexadezimalzahl aus einem String heraus-
filtern. Leider gibt es keine Traumfunktion, die wie hier zum Beispiel:
was zusammensuchen kann. Um genauer zu sein, brauche ich direkt den
Integerwert der gestringten Hexzahl. Habt ihr vielleicht eine mögliche Lösung
oder sogar Rechnung dazu parat? Das Problem ist, dass ich ohne eine solche
Rechnung mir mein kleines Progrämmchen kneifen kann, was aber darauf
angewiesen ist.
Obwohl ich sowas auch selber machen könnte, will ich aber nicht zu viel Code verbraten...

Verfasst: 03.11.2004 19:38
von freedimension
Schau mal ins CodeArchiv, glaube NtQ hatte da mal was dafür.
Link: siehe oben rechts im Forum: PureArea.net
Verfasst: 03.11.2004 19:46
von ChaOsKid
Verfasst: 03.11.2004 19:46
von Kekskiller
Edit: Mann, immer zu spät

...
Hey, stimmt, da habe ich garnicht dran gedacht ^^ .
Habe auch gleich was schönes gefunden:
Code: Alles auswählen
; German forum: http://robsite.de/php/pureboard/viewtopic.php?t=1423
; Author: GPI
; Date: 19. June 2003
; Procedures for converting Binary + Hex values to Decimal
Procedure BinVal(a$)
a$=Trim(UCase(a$))
If Asc(a$)='%'
a$=Trim(Mid(a$,2,Len(a$)-1))
EndIf
result=0
*adr.byte=@a$
For i=1 To Len(a$)
result<<1
Select *adr\B
Case '0'
Case '1':result+1
Default:i=Len(a$)
EndSelect
*adr+1
Next
ProcedureReturn result
EndProcedure
Procedure HexVal(a$)
a$=Trim(UCase(a$))
If Asc(a$)='$'
a$=Trim(Mid(a$,2,Len(a$)-1))
EndIf
result=0
*adr.byte=@a$
For i=1 To Len(a$)
result<<4
Select *adr\B
Case '0'
Case '1':result+1
Case '2':result+2
Case '3':result+3
Case '4':result+4
Case '5':result+5
Case '6':result+6
Case '7':result+7
Case '8':result+8
Case '9':result+9
Case 'A':result+10
Case 'B':result+11
Case 'C':result+12
Case 'D':result+13
Case 'E':result+14
Case 'F':result+15
Default:i=Len(a$)
EndSelect
*adr+1
Next
ProcedureReturn result
EndProcedure
;- Test
Debug BinVal("100100")
Debug HexVal("46BC")
; ExecutableFormat=Windows
; FirstLine=1
; EOF
Made by GPI ^_^ .
Edit by NicTheQuick: Code-Tags gesetzt
die waren schon gesetzt...
NicTheQuick: Nein, da waren Quote-Tags drin
Verfasst: 03.11.2004 19:52
von Kiffi
> Habe auch gleich was schönes gefunden:
hat das einen Grund, warum Du den Code hier noch einmal postest, obwohl
er bereits in der PureArea vorhanden ist (zu allem Überfluss auch noch
uneingerückt)?
Grüße ... Kiffi
Verfasst: 03.11.2004 19:58
von Kekskiller
Na warum nicht? Vielleicht gibt es ja Leute, die genauso blöd sind wie ich...
Verfasst: 03.11.2004 20:12
von freedimension
Wo er recht hat ...
(glaub aber ehrlich gesagt nicht das du blöd bist, daher das Smilie, heutzutage kann ja alles missverstanden werden, selbst der kleinste Joke und dann ist man gleich unten durch

)
Verfasst: 03.11.2004 20:16
von Kekskiller
Ja, das hab ich auch schon gemerkt... Anlachen ist out, Anpampen kommt
in Mode (Muahaha). Größenwahnsinnig passt wohl eher (miam).
Verfasst: 04.11.2004 01:05
von Kiffi
> Na warum nicht?
weil ein Link genügt hätte.