Ich poste mal mein kleines Tool was ich mal zum testen angewendet habe..ist nicht immer das genauste...aber seid nicht so hart mit einem Anfänger..
Ausserdem fühl ich mich plötzlich minderwertig...bei euren soo schönen Versionen...
Code: Alles auswählen
; PureBasic Visual Designer v3.90 build 1360
;- Window Constants
;
Enumeration
#Window_0
EndEnumeration
;- Gadget Constants
;
Enumeration
#Check_Code
#Check_Dezimal
#Combo_Change
#String_Code
#String_Dezimal
#Button_Proceed
#ButtonInfo
EndEnumeration
;- Image Plugins
;- Image Globals
Global Image0
;- Catch Images
Image0 = CatchImage(0, ?Image0)
;- Images
DataSection
Image0:
IncludeBinary "Info.bmp"
EndDataSection
Procedure Open_Window_0()
If OpenWindow(#Window_0, 433, 129, 328, 136, #PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_WindowCentered , "Hex- / Binär Umrechner V1.0 ")
If CreateGadgetList(WindowID())
OptionGadget(#Check_Code, 30, 20, 60, 20, "Code")
GadgetToolTip(#Check_Code, "Klicken Sie hier, wenn sie eine Hexadezimal- /Binärzahl in eine Dezimalzahl umrechen möchten")
OptionGadget(#Check_Dezimal, 30, 60, 60, 20, "Dezimal")
GadgetToolTip(#Check_Dezimal, "Aktivieren Sie diese Box wenn sie eine Dezimalzahl in einen Hexadezimal- Binärcode umrechnen möchten")
ComboBoxGadget(#Combo_Change, 110, 100, 110, 120)
GadgetToolTip(#Combo_Change, "Wählen Sie hier aus in welchem System sie umrechnen wollen (Hexadezimal- /Binärsystem)")
StringGadget(#String_Code, 110, 20, 110, 20, "")
GadgetToolTip(#String_Code, "Hier den Hexadezimal- oder Binärcode eingeben")
StringGadget(#String_Dezimal, 110, 60, 110, 20, "", #PB_String_Numeric)
GadgetToolTip(#String_Dezimal, "Hier die Dezimalzahl eingeben")
ButtonGadget(#Button_Proceed, 240, 50, 70, 30, "Proceed")
ButtonImageGadget(#ButtonInfo, 300, 110, 20, 20, Image0)
GadgetToolTip(#ButtonInfo, "Info")
EndIf
EndIf
EndProcedure
Procedure BinaryToDezimal(AnfangsCode.s)
Laenge = Len(AnfangsCode)
For i=1 To Len(AnfangsCode)
Code.s + Mid(AnfangsCode,Laenge,1)
If Laenge <> 0
Laenge = Laenge - 1
EndIf
Next
For i=1 To Len(Code)
If Mid(Code,i,1) = "1"
Ergebnis = Ergebnis + Pow(2,i-1)
EndIf
Next
ProcedureReturn Ergebnis
EndProcedure
Procedure HexToDezimal(AnfangsCode.s)
Laenge = Len(AnfangsCode)
For i=1 To Len(AnfangsCode)
Code.s + Mid(AnfangsCode,Laenge,1)
If Laenge <> 0
Laenge = Laenge - 1
EndIf
Next
For i=1 To Len(Code)
Umrechnen.s = Mid(Code,i,1)
Select Umrechnen
Case "A"
Umrechnen = "10"
Case "B"
Umrechnen = "11"
Case "C"
Umrechnen = "12"
Case "D"
Umrechnen = "13"
Case "E"
Umrechnen = "14"
Case "F"
Umrechnen = "15"
Case "a"
Umrechnen = "10"
Case "b"
Umrechnen = "11"
Case "c"
Umrechnen = "12"
Case "d"
Umrechnen = "13"
Case "e"
Umrechnen = "14"
Case "f"
Umrechnen = "15"
EndSelect
Potenz = Pow(16,i-1)
Ergebnis = Ergebnis + (Potenz * Val(Umrechnen))
Next
ProcedureReturn Ergebnis
EndProcedure
Open_Window_0()
AddGadgetItem(#Combo_Change,-1,"Binärzahlen")
AddGadgetItem(#Combo_Change,-1,"Hex-Zahlen")
SetGadgetState(#Check_Code,1)
SetGadgetState(#Combo_Change,0)
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_CloseWindow : Quit = 1 : EndIf
If EventID = #PB_Event_Gadget
Select EventGadgetID()
Case #ButtonInfo
MessageRequester("Info", "Hexadezimal- / Binärumrechner v1.0 - (C) by Marc Giesmann" + Chr(10) + "" + Chr(10) + "Der Autor übernimmt hiermit keine Haftung für Schäden," + Chr(10) + "die dieses Programm unter Umständen verursachen kann." + Chr(10) + "" + Chr(10) + "Dieses Programm ist Freeware und darf ohne Zusage des Autors" + Chr(10) + "veröffentlicht werden." + Chr(10) + "" + Chr(10) + "Änderungen an dem Programm sind auschliesslich dem Autor" + Chr(10) + "dieses Programmes vorbehalten." + Chr(10) + "" + Chr(10) + "Bei Bugs, Kritik und Anregungen wenden Sie sich bitte an:" + Chr(10) + "" + Chr(10) + "marcarneg@surfeu.de" + Chr(10) + "" + Chr(10) + "Bevor Sie mir einen Bug melden,achten sie ob der Fehler kein Tipp- oder Schreibfehler Ihrerseits war!", #MB_OK|#MB_ICONINFORMATION)
Case #Button_Proceed
If GetGadgetState(#Check_Code) = 1 And GetGadgetState(#Combo_Change) = 0
SetGadgetText(#String_Dezimal,Str(BinaryToDezimal(GetGadgetText(#String_Code))))
EndIf
If GetGadgetState(#Check_Code) = 1 And GetGadgetState(#Combo_Change) = 1
SetGadgetText(#String_Dezimal,Str(HexToDezimal(GetGadgetText(#String_Code))))
EndIf
If GetGadgetState(#Check_Dezimal) = 1 And GetGadgetState(#Combo_Change) = 0
Dezimalzahl = Val(GetGadgetText(#String_Dezimal))
SetGadgetText(#String_Code,Bin(Dezimalzahl))
EndIf
If GetGadgetState(#Check_Dezimal) = 1 And GetGadgetState(#Combo_Change) = 1
Dezimalzahl = Val(GetGadgetText(#String_Dezimal))
SetGadgetText(#String_Code,Hex(Dezimalzahl))
EndIf
EndSelect
EndIf
Until Quit = 1
End