Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Binär Übersetzer per Batch (Vbs)

Frage Entwicklung Batch & Shell

Mitglied: Alme123

Alme123 (Level 1) - Jetzt verbinden

10.07.2013 um 19:19 Uhr, 1529 Aufrufe, 9 Kommentare

Hallo zusammen,

ist es möglich, eine Batch Datei zu erstellen, die folgendes tut:

in Variable "tzv" befindet sich ein Text (vielleicht auch ü,ä,ö,ß,é,è) (z.B.: "Herr Meier schießt mit gewählten Schüßen auf André")
diese soll in Binär codiert und ausgegeben werden.
Dieser Binärcode soll dann in HEX konvertiert und zuletzt nach Decimal codiert werden.

Außerdem sollte dieser Prozess auch rückgängig gemacht werden können (Decimal -> HEX -> Binär ->Text)


Ist dies möglich oder nur Teile der Frage?


Vielen Dank im Vorraus,

Alme123
Mitglied: 76109
10.07.2013, aktualisiert um 22:12 Uhr
Hallo Alme123!

Hier mal in VBS von (Ansi)-Text > Bin > Hex > Dez:
01.
Const strFile = "C:\Test\Conv.txt" 
02.
 
03.
Const strText = "Herr Meier schießt mit gewählten Schüssen auf André" 
04.
 
05.
For i = 1 To Len(strText) 
06.
    iByte = CByte(Asc(Mid(strText, i, 1))) 
07.
     
08.
    strHex = Right("0" & Hex(iByte), 2) 
09.
    strDec = Right("00" & iByte, 3) 
10.
     
11.
    strBin = "" 
12.
    For b = 7 To 0 Step -1 
13.
        If iByte And 2 ^ b Then 
14.
            strBin = strBin & 1 
15.
        Else 
16.
            strBin = strBin & 0 
17.
        End If 
18.
    Next 
19.
         
20.
    strHexText = strHexText & strHex 
21.
    strDecText = strDecText & strDec 
22.
    strBinText = strBinText & strBin 
23.
Next 
24.
 
25.
With CreateObject("Scripting.FileSystemObject").CreateTextFile(strFile) 
26.
	.WriteLine "Bin 8-stellig: " & vbNewLine & strBinText & vbNewLine 
27.
	.WriteLine "Hex 2-stellig: " & vbNewLine & strHexText & vbNewLine  
28.
	.WriteLine "Dez 3-stellig: " & vbNewLine & strDecText 
29.
	.Close 
30.
End with
Gruß Dieter
Bitte warten ..
Mitglied: Alme123
11.07.2013 um 13:00 Uhr
Hallo didi1954,

dein Script funktioniert; aber nicht so, wie ich es meinte:

Es soll einen Text (ANSI) in Binär codieren. Dieser Binärcode soll dann in HEX und dieser darauf in Dec codiert werden.
Könnte man es auch machen, dass der zukonvertierende (ANSI) Text aus einer Datei eingelesen wird?

Würde auch die Entschlüsselung funktionieren, und wenn ja, wie?

Vielen Dank im Vorraus an dich und alle,

Alme123
Bitte warten ..
Mitglied: 76109
11.07.2013 um 13:26 Uhr
Hallo Alme!

dein Script funktioniert; aber nicht so, wie ich es meinte:
War ja auch nur mal ein erster Ansatz

Worin der Sinn von 'erst nach Bin, dann nach Hex und danach in Dez' liegen soll, hast Du ja nicht erklärt und mir fällt dazu auch irgendwie nix ein

Die Rückkonvertierung habe ich bewusst weggelassen, damit andere auch noch was zum spielen haben. Ist eigentlich recht Simpel und Du könntest Dir ja auch etwas Mühe geben und zumindest mal einen Ansatz versuchen...

Gruß Dieter
Bitte warten ..
Mitglied: colinardo
11.07.2013, aktualisiert um 16:49 Uhr
Hallo Alme123,
hier noch etwas mehr Input:
(In Zeile 1 noch den Pfad zur Textdatei angeben)

01.
FILEPATH = "C:\DeineTextDatei.txt" 
02.
Set objFSO = CreateObject("Scripting.FileSystemObject") 
03.
Set objText = objFSO.OpenTextFile(FILEPATH, 1) 
04.
strText = objText.ReadAll 
05.
objText.Close() 
06.
 
07.
'----------------Umwandlungen--------------------- 
08.
'String zu Binär 
09.
sBinary = StringToBinary(strText) 
10.
'String zu Hex 
11.
sHex = StringToHex(strText) 
12.
'String zu Dezimal 
13.
sDec = StringToDec(strText) 
14.
'Binär zu String 
15.
sString = BinaryToString(sBinary) 
16.
'------------------------------------------------- 
17.
'Ausgabe 
18.
MsgBox "Binärwerte des Strings: " & vbNewLine & sBinary 
19.
MsgBox "Hexwerte des Strings: " & vbNewLine & sHex 
20.
MsgBox "Dezimalwerte des Strings: " & vbNewLine & sDec 
21.
MsgBox "Umwandlung der Binärwerte zurück in den Text: " & vbNewLine & sString 
22.
'------- 
23.
 
24.
'------ Funktionen ------------ 
25.
Function StringToDec(sText) 
26.
	sDec = "" 
27.
	aByte = StringToByteArray(sText) 
28.
	For Each b In aByte 
29.
		sDec = sDec & b 
30.
	Next 
31.
	StringToDec = sDec 
32.
End Function 
33.
 
34.
Function StringToByteArray(sText) 
35.
	Dim iByte() 
36.
	For i = 1 To Len(sText) 
37.
		ReDim Preserve iByte(i) 
38.
		iByte(i-1) = CByte(Asc(Mid(sText,i,1))) 
39.
	Next 
40.
	StringToByteArray = iByte 
41.
End Function 
42.
 
43.
Function ByteArrayToString(aByte) 
44.
	sString = "" 
45.
	For i = 0 To UBound(aByte) 
46.
		sString = sString & Chr(CStr("&h" & Hex(aByte(i)))) 
47.
	Next 
48.
	ByteArrayToString = sString 
49.
End Function 
50.
 
51.
Function StringToHex(sText) 
52.
	sHex = "" 
53.
	For i = 1 To Len(sText) 
54.
		sHex = sHex & Right("0" & Hex(CByte(Asc(Mid(sText,i,1)))),2) 
55.
	Next 
56.
	StringToHex = sHex 
57.
End Function 
58.
 
59.
Function HexToString(sHex) 
60.
	sString = "" 
61.
	For i = 1 To Len(sHex) Step 2 
62.
		sString = sString & Chr(CStr("&h" & Mid(sHex,i,2))) 
63.
	Next 
64.
	HexToString = sString 
65.
End Function 
66.
 
67.
Function StringToBinary(sText) 
68.
	sBinary = "" 
69.
	For i = 1 To Len(sText) 
70.
		iByte = CByte(Asc(Mid(sText, i, 1)))  
71.
	  	For b = 7 To 0 Step -1 
72.
	  		If iByte >= 2 ^ b Then 
73.
	  			sBinary = sBinary & "1" 
74.
	  			iByte = iByte - (2 ^ b) 
75.
	  		Else 
76.
	  			sBinary = sBinary & "0" 
77.
	  		End If 
78.
	  	Next 
79.
	Next 
80.
	StringToBinary = sBinary 
81.
End Function 
82.
 
83.
Function BinaryToString(sBinary) 
84.
	sString = "" 
85.
	For i = 1 To Len(sBinary) Step 8 
86.
		sByte = Mid(sBinary,i,8) 
87.
		iByte = 0 
88.
		For b = 7 To 0 Step - 1 
89.
			If Mid(sByte,8-b,1) = 1 Then 
90.
				iByte = iByte + (2^b) 
91.
			End If 
92.
		Next 
93.
		sString = sString & Chr(CStr("&h" & Hex(iByte))) 
94.
	Next 
95.
	BinaryToString = sString 
96.
End Function 
97.
'----------------------
@76109
deine Umwandlung in Binär bringt bei mir keine korrekten Ergebnisse:

Grüße Uwe
Bitte warten ..
Mitglied: 76109
11.07.2013, aktualisiert um 16:51 Uhr
Hallo colinardo!

deine Umwandlung in Binär bringt bei mir keine korrekten Ergebnisse:
Kann ich jetzt nicht so ganz nachvollziehen, zumal bei mir beide Richtungen funktionieren?

Hier noch mal das Ganze:
01.
Const strFileBin = "C:\Test\Bin.txt" 
02.
Const strFileHex = "C:\Test\Hex.txt" 
03.
Const strFileDec = "C:\Test\Dec.txt" 
04.
 
05.
Const strInput = "Herr Meier schießt mit gewählten Schüssen auf André" 
06.
 
07.
'Text To Bin, Dez, Hex________________________________________________ 
08.
 
09.
For i = 1 To Len(strInput) 
10.
    iByte = CByte(Asc(Mid(strInput, i, 1))) 
11.
     
12.
    strHex = Right("0" & Hex(iByte), 2) 
13.
    strDec = Right("00" & iByte, 3) 
14.
     
15.
    strBin = "" 
16.
    For b = 7 To 0 Step -1 
17.
        If iByte And (2 ^ b) Then 
18.
            strBin = strBin & 1 
19.
        Else 
20.
            strBin = strBin & 0 
21.
        End If 
22.
    Next 
23.
         
24.
    strHexText = strHexText & strHex 
25.
    strDecText = strDecText & strDec 
26.
    strBinText = strBinText & strBin 
27.
Next 
28.
 
29.
With CreateObject("Scripting.FileSystemObject") 
30.
    With .CreateTextFile(strFileBin) 
31.
        .Write strBinText:  .Close 
32.
    End With 
33.
    With .CreateTextFile(strFileHex) 
34.
        .Write strHexText:  .Close 
35.
    End With 
36.
    With .CreateTextFile(strFileDec) 
37.
        .Write strDecText:  .Close 
38.
    End With 
39.
End With 
40.
 
41.
'Bin To Text__________________________________________________________ 
42.
 
43.
With CreateObject("Scripting.FileSystemObject") 
44.
    strBinText = .OpenTextFile(strFileBin).ReadAll 
45.
End With 
46.
 
47.
strText = "" 
48.
For i = 1 To Len(strBinText) Step 8 
49.
    strBin = StrReverse(Mid(strBinText, i, 8)) 
50.
     
51.
    iByte = 0 
52.
    For b = 0 To 7 
53.
        If Mid(strBin, b + 1, 1) = 1 Then 
54.
            iByte = iByte Or (2 ^ b) 
55.
        End If 
56.
    Next 
57.
         
58.
    strText = strText & Chr(iByte) 
59.
Next 
60.
MsgBox strText,,"BinToText..." 
61.
 
62.
'Dec To Text__________________________________________________________ 
63.
 
64.
With CreateObject("Scripting.FileSystemObject") 
65.
    strDecText = .OpenTextFile(strFileDec).ReadAll 
66.
End With 
67.
 
68.
strText = "" 
69.
For i = 1 To Len(strDecText) Step 3 
70.
    strText = strText & Chr(CByte(Mid(strDecText, i, 3))) 
71.
Next 
72.
MsgBox strText,,"DecToText..." 
73.
 
74.
'Hex To Text__________________________________________________________ 
75.
 
76.
With CreateObject("Scripting.FileSystemObject") 
77.
    strHexText = .OpenTextFile(strFileHex).ReadAll 
78.
End With 
79.
 
80.
strText = "" 
81.
For i = 1 To Len(strHexText) Step 2 
82.
    strText = strText & Chr(CByte("&H" & Mid(strHexText, i, 2))) 
83.
Next 
84.
MsgBox strText,,"HexToText..."
Gruß Dieter

[edit] hab mal vorsichthalber die '2 ^ b' in Klammer gesetzt [/edit]
Bitte warten ..
Mitglied: colinardo
11.07.2013, aktualisiert um 18:03 Uhr
Hallo Dieter ,weiß der Geier woran's gelegen hat, jetzt gehts auf einmal ... sorry. Hatte vorher das Problem das z.B. für ein H dies ausgegeben wurde 00101000 anstatt 01001000; das ganze also um ein Bit verschoben war.
Vielleicht ist da ein Bit im RAM gekippt
Bitte warten ..
Mitglied: 76109
11.07.2013 um 17:04 Uhr
Hallo Uwe!

Seltsam, seltsam... Konnte nämlich nix verwerfliches an der Syntax erkennen

Gruß Dieter
Bitte warten ..
Mitglied: colinardo
11.07.2013, aktualisiert um 17:31 Uhr
Probier mal b ^ 2 anstatt 2 ^ b dann kommt es zu dem Phänomen. Hatte den Code aber hier über "Quelltext" rauskopiert. Naja egal, Hauptsache Ursache entdeckt und abgehakt ...
Bitte warten ..
Mitglied: 76109
11.07.2013 um 18:00 Uhr
Hallo Uwe!

Probier mal b ^ 2 anstatt 2 ^ b dann kommt es zu dem Phänomen
Nö, hatte diesbezüglich keine Änderung vorgenommen. Das einzige, was ich gestern noch geändert hatte, war eine Korrektur von dem Wort 'Schüßen' nach 'Schüssen'

Hab's probiert, kommt bei mir knapp daneben "H=00101000" raus

Gruß Dieter
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Entwicklung
gelöst Mit Batch,VBS,Powershell Windows einrichten (1)

Frage von Justin98 zum Thema Entwicklung ...

Windows 7
gelöst Batch-Skript oder VBS Skript zum Sichern von Office Vorlagen (2)

Frage von Ceejaay zum Thema Windows 7 ...

Batch & Shell
gelöst VBS Script in eine Textdatei ausgeben (VBS mit Batch zusammenführen) (5)

Frage von Luuke257 zum Thema Batch & Shell ...

VB for Applications
VBS oder Batch um eine Datei in Unterordner zu verschieben (1)

Frage von MrRoyal zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (27)

Frage von patz223 zum Thema Windows Userverwaltung ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (20)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...