Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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
GELÖST

String in Hex umwandeln

Frage Entwicklung Batch & Shell

Mitglied: akrupp2

akrupp2 (Level 1) - Jetzt verbinden

14.05.2009, aktualisiert 12:45 Uhr, 10359 Aufrufe, 9 Kommentare

Hallo Leute,

Wollte mal fragen ob es eine Möglichkeit gibt einen String in eine Hex-Zahl umzuwandeln und diese dann weiter zu verwenden?
Mitglied: bastla
14.05.2009 um 12:50 Uhr
Hallo akrupp2!

Neigst Du zu Extremen? Im Vergleich zu Deiner gestrigen Frage hast Du dieses Mal entschieden zu wenig weit ausgeholt ...

Die Antwort ist übrigens: Ja.

Grüße
bastla
Bitte warten ..
Mitglied: 78569
14.05.2009 um 16:52 Uhr
Hallo Alexander,

wenn ich Deine Frage richtig verstehe, hast Du einen String etwa

"12345"

In VB würde daraus eine HEX wie folgt

HEXString = Hex(Val("12345"))

oder bei Verwendung von zwei TextBoxen:

TextBox2.Text = Hex(Val(TextBox1.Text))

In Wert umwandeln geht dann einfach so:

Dim Wert As Long = Val("&H" + TextBox2.Text)

Gruß

Horst
Bitte warten ..
Mitglied: 76109
14.05.2009 um 19:11 Uhr
Hallo horstfh,

also, der Beitrag lautet eine Hex-Zahl. Und dann funktioniert nur das letzte Beispiel, wenn Du z.B. ein String in der Form "1A2B" hast.

Dann kann es z.B.sein:

Long = CLng("&H" & "1A2B")
Double = CDbl("&H" & "1A2B")
Decimal = CDec("&H" & "1A2B")
usw.

Gruß Dieter
Bitte warten ..
Mitglied: akrupp2
14.05.2009 um 19:20 Uhr
Hi Bastla,

dann werd ich mal etwas deutlicher, auch wenn sich mein Problem erledigt hat, aber interessehalber würd ich es trotzdem gern wissen

Ich habe ein Batchskript geschrieben, welches mir in ca. 400 XML-Dateien einen String sucht und durch einen anderen ersetzt. Das eigentliche Ersetzen erledige ich mit MB-Search&Replace. Dieses Tool wird im Batchskript mit den entsprechenden Parametern aufgerufen.
In etwa so: MB-SearchAndReplacePro.exe -F%LW%%Ordner%%Datei% -Oc%Suchen% -Nc%Ersetzen% -G -C
Jetzt kommt aber das Problem: Der Such- und Ersetzenstring dürfen keine Leerzeichen oder Anführungszeichen enthalten. (Dumme Sache das)
Allerdings bietet das Tool die Möglichkeit die Strings in Hex zu übergeben, somit kann ich dann auch die nicht erlaubten Zeichen suchen und ersetzen.
Ich würde jetzt gerne den String in Hex umwandeln, bevor ich ihn als Parameter übergebe.
Der folgende Text-String: - Dies ist ein "Beispielstring" - würde in Hex so aussehen: 44696573206973742065696E2022426569737069656C737472696E6722.

Meine Frage wäre jetzt wie ich diesen String berechnen kann, bevor ich ihn in eine Variable speicher und anschließend als Parameter übergebe.

Ich habe auch schon daran gedacht den Wert über VB zu berechnen, aber wie kriege ich den Wert wieder zurück ins Batchskript, damit ich ihn in eine Variable speichern und übergeben kann?
Bitte warten ..
Mitglied: akrupp2
14.05.2009 um 19:27 Uhr
Wie oben schon erwähnt ist der Ursprungsstring keine Zahl. Das hätte ich dann selbst schon hinbekommen Bzw. Es gibt schon einen Beitrag, der beantwortet, wie man mit einem Batch-Skript eine Zahl in Hex umrechnet.
Ich müsste ein Text-String in Hex umwandeln und das ist nicht ganz so leicht (glaub ich).
Bitte warten ..
Mitglied: bastla
14.05.2009 um 19:31 Uhr
Hallo akrupp2!

"Leicht" ist relativ ...
01.
@echo off & setlocal 
02.
set "String=Beispielstring" 
03.
 
04.
set C=%temp%\ConvertToHex.vbs 
05.
>%C% echo S=WScript.Arguments(0):For i=1 To Len(S):H=H ^& Hex(Asc(Mid(S,i,1))):Next:WScript.Echo H 
06.
for /f %%i in ('cscript //nologo %C% "%String%"') do set "Hex=%%i" 
07.
echo %Hex%
Nachtrag: Um mich nicht vor der "Anführungszeichen"-Problematik zu drücken:
01.
@echo off & setlocal 
02.
set "String=Dies ist ein @Beispielstring@" 
03.
 
04.
set C=%temp%\ConvertToHex.vbs 
05.
>%C% echo S=WScript.Arguments(0):S=Replace(S,"@",""""):For i=1 To Len(S):H=H ^& Hex(Asc(Mid(S,i,1))):Next:WScript.Echo H 
06.
for /f %%i in ('cscript //nologo %C% "%String%"') do set "Hex=%%i" 
07.
echo %Hex%
Dabei habe ich es mir allerdings etwas "leicht" gemacht und ein ansonsten unbenutztes Zeichen (im Beispiel "@") als Ersatz für die Anführungszeichen übergeben.

Grüße
bastla
Bitte warten ..
Mitglied: 76109
14.05.2009 um 19:40 Uhr
Hallo akrupp2,

ja, was ist Deiner meiner nach ein Text, in meinen Beispielen stehen Textzahlen. Alles was in "" steht ist Text, also "Text" oder "1A2B"

Ist allerdings VB und nicht Batch. Das war Deinem Beitrag nicht zu entnehmen und auf die Kategorie habe ich leider nicht geachtet.

Aber bastla hat ja die Lösung in Batch schon geschrieben

Gruß Dieter
Bitte warten ..
Mitglied: akrupp2
14.05.2009 um 19:42 Uhr
Wow, das ging ja schnell.
Und es funktioniert auch noch Wie geil ist das denn?

Vielen Dank.
Werde mir jetzt mal überlegen das Batch nochmal umzuschreiben.
Bitte warten ..
Mitglied: akrupp2
14.05.2009 um 19:48 Uhr
Richtig. Aber danke trotzdem für Deine Bemühung.
Ich werde die Frage jetzt als erledigt abhaken

Echt ein Top Forum mit kompetenten Moderatoren. Danke nochmal
Bitte warten ..
Ähnliche Inhalte
Netzwerkprotokolle
Ethernet HEX Dump (6)

Frage von WhoIam zum Thema Netzwerkprotokolle ...

Router & Routing
Mikrotik hex firewall regeln (2)

Frage von ecki33 zum Thema Router & Routing ...

Router & Routing
gelöst Mikrotik hEX - RB750Gr3: bootet nicht mehr nach RouterOS Upgrade - Hilfe (12)

Frage von schmiro zum Thema Router & Routing ...

Visual Studio
gelöst DotNet String Sortierung (5)

Frage von emeriks zum Thema Visual Studio ...

Neue Wissensbeiträge
Windows Update

Novemberpatches und Nadeldrucker bereiten Kopfschmerzen

(14)

Tipp von MettGurke zum Thema Windows Update ...

Windows 10

Abhilfe für Abstürze von CDPUsersvc auf Win10 1607 und 2016 1607

(7)

Tipp von DerWoWusste zum Thema Windows 10 ...

RedHat, CentOS, Fedora

Fedora 27 ist verfügbar

Information von Frank zum Thema RedHat, CentOS, Fedora ...

Heiß diskutierte Inhalte
Server
Bilder aus dem Web mit CSV runterladen (30)

Frage von Yannosch zum Thema Server ...

LAN, WAN, Wireless
Gebäudeverkabelung 10Gigabit LWL (27)

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

Windows Update
Novemberpatches und Nadeldrucker bereiten Kopfschmerzen (14)

Tipp von MettGurke zum Thema Windows Update ...