IP String to Array of Byte

Rob1337

Level-2
Beiträge
20
Reaktionspunkte
5
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich möchte eine ENIP-Adresse vom Datentyp „String“ in ein Array[0..3] of Byte wandeln.

Meine ersten Versuche waren mit Datentyp „Union“ und Pointern. Damit wollte ich den String in ASCII wandeln, die Punkte aus der IP-Adresse filtern und die einzelne Oktette in das Array[0..3] speichern.

Leider komme ich nicht zu dem gewünschten Ergebnis und frage mich ob es eine einfache Lösung gibt. Ich könnte eine fertige Funktion benutzen, aber das ist nicht meine bevorzugte Lösung. Dadurch habe ich nichts gelernt 🙂

Über Hilfe wäre ich sehr dankbar.

Grüße Rob
 
Beim Umwandeln von Strings in Zahlenwerte am besten mit der niederwertigsten Ziffer anfangen, den String also von rechts nach links durcharbeiten, z. B. in einer Schleife
FOR Loop:=Stringlänge TO 1 BY -1
Als zusätzliche Variablen brauchst Du noch einen Multiplikator und einen Arrayindex. Vor Beginn der Schleife Multiplikator:=1, Arrayindex:=3.
Dann in jedem Schleifendurchlauf das Zeichen des Strings an der Position Loop auslesen, aus seinem ASCII-Code den Ziffernwert berechnen, mit Multiplikator multiplizieren und zu
Array[Arrayindex] addieren. Dann Multiplikator mit 10 multiplizieren.
Wenn Du im Schleifendurchlauf auf einen Punkt stösst, Multiplikator wieder auf 1 setzen und Arrayindex dekrementieren.

PS: Code wäre einfacher gewesen, aber ich respektiere Deinen Wunsch, eine Lösung selbst zu programmieren.
 
Zurück
Oben