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

String in Hex umwandeln

Frage Entwicklung Batch & Shell

Mitglied: akrupp2

akrupp2 (Level 1) - Jetzt verbinden

14.05.2009, aktualisiert 12:45 Uhr, 9930 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 ..
Neuester Wissensbeitrag
Ähnliche Inhalte
C und C++
Arduino: long in HEX-String konvertieren (5)

Frage von BirdyB zum Thema C und C ...

C und C++
gelöst Anzahl der Buchstaben in einem String Element Array C++ (3)

Frage von Protected zum Thema C und C ...

Windows Server
Windows Server 2016 Datacenter - Evaluation in Datacenter umwandeln (3)

Tipp von Systembastler zum Thema Windows Server ...

C und C++
String einlesen in Array und wieder ausgeben von hinten (4)

Frage von Protected zum Thema C und C ...

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

Frage von patz223 zum Thema Windows Userverwaltung ...

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

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

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

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

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...