- Beiträge: 20
Feldinhalte als ASCII + hexadezimal codier
- Sascha Heuser
- Autor
- Offline
- Benutzer
ich habe das Vergnügen einen Matrixcode für eine Presseaussendung zu erstellen.
Erste Hürde die Felder zu separieren - erledigt
Zweite Hürde im Ergebnis muss das ein Feld als Hexadezimal ein anderes als ASCII codiert sein.
Dritte Hürde die hex muss mit Hochkommata und ASCII mit Anführungsstrichen eingeschlossen werden.
Ich sage Danke für eine hilfreiche Antwort
Sascha Heuser
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
dazu benötigen Sie den .NET Script Heater und zwei kleine Skripte. Im Anhang finden Sie ein kleines Beispiel dazu. Um die Skripte zu verwenden müssen Sie jeweils einen (pro Skript) .NET Script Heater auf den Designer ziehen, per Doppelklick den Konfigurationsdialog öffnen und das vorhanden Skript mit diesem hier ersetzen. Das Skript erfordert einen Eingangsparameter mit der Zeichenfolgen die so ausgebeben werden soll!
Skript um Zeichenfolge als ASCII Werte auszugeben.
Skript um Zeichenfolge als ASCII (HEX) Werte auszugeben
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Sascha Heuser
- Autor
- Offline
- Benutzer
- Beiträge: 20
das scheint tatsächlich die Lösung zu sein. Final fehlt noch die Freigabe vom Kunden bzw. der Post
Vielen Dank für die schnelle Hilfe!!!!!
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Sascha Heuser
- Autor
- Offline
- Benutzer
- Beiträge: 20
wir sind auf dem richtigen Weg.
Allerdings gibt es noch eine kleine Hürde. Es geht im Augenblick noch um die hex Ausgabe.
Die einzelnen Arrays sollen in die Hochkommata und nicht die einzelnen Dateninhalte.
zB. '19 20' statt '19' '20'
Wenn Sie da nochmal ein Auge drauf haben?
Vielen Dank,
Sascha Heuser
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
Skript um Zeichenfolge als ASCII Werte auszugeben
Skript um Zeichenfolge als ASCII (HEX) Werte auszugeben
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Sascha Heuser
- Autor
- Offline
- Benutzer
- Beiträge: 20
ich habe Ihnen ein paar Screenshots per Email geschickt.
Hoffe das ist ok so.
Viele Grüße
Sascha Heuser
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Sascha Heuser
- Autor
- Offline
- Benutzer
- Beiträge: 20
die Ausgabe als ASCII können wir streichen.
Hier eine genauere Beschreibung der Aufgabe. Ziel ist ein DataMatrix Barcode für die Deutsche Post zu generieren.
Die Werte werden hexadezimal codiert benötigt.
Der erzeugte Code setzt sich aus verschiedenen Teilen zusammen.
Die statischen Elemente werden als x-Value (bereit hex codiert) zugesteuert die variablen Elemente ziehe ich direkt und insgesamt oder als substring aus einem Feld der Quelle.
Für diese Werte müsste auch die Umwandlung in Hexadezimal erfolgen.
Ich habe für jedes Byte vorgegeben was drin stehen soll und für jedes [Feld] eine vorgegebene Länge.
zum Beispiel:
in f1bisf3 [PostUnternehmen] Länge 3 "DEA" = 444541
in f102 bis f131 [Name1] Länge 30, "Deutsche Post AG" = 446575747363686520506f73742041470000000000000000000000000000 aufgefüllt (mit 00 oder 20) auf 30 Byte
Am Ende verbinde ich diese mit dem Append Adapter und gebe den Inhalt aus.
Wenn ich das unverständlich oder unvollständig beschreiben habe bitte Bescheid sagen
Im Anhang finden Sie die Beschreibung der DPAG, hier ist ab Seite 8 der relevante Inhalt zu finden.
Dazu einen Screenshot des FlowHeater Projekts.
Hier fehlen noch die Scrips für die Werte aus dem Feld Datamatrix Code.
Danke und viele Grüße
Sascha Heuser
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
im Anhang finden Sie ein angepasstes Beispiel das das widerspiegelt was Sie im letzten Post geschrieben haben. Es werden einmal die einzelnen Zeichen (ASCII codiert) der Zeichenfolge „DEA“ hexadezimal formatiert ausgegeben sowie die Zeichenfolge „Deutsche Post AG“ ebenfalls in ASCII (HEX) auf 30 Bytes mit hex 0x00 aufgefüllt. Letzteres wird zusätzlich pro Byte mit einem Leerzeichen getrennt ausgegeben.
PS: Die 16 Seiten Doku habe ich mir nicht angesehen. Das kann und will ich hier im kostenlosen Support nicht leisten. Falls das nicht ist was Sie wollen/brauchen benötige ich für die weitere Lösungssuche, auf Basis des letzten Beispiels, eine genaue Beschreibung was Sie benötigen. Danke.
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Sascha Heuser
- Autor
- Offline
- Benutzer
- Beiträge: 20
das ist definitiv eine Klasse Support Leistung die Sie hier bieten!
Aus dem letzten Beispiel konnte ich die allermeisten der Konvertierungen durchführen.
Mit fehlt jetzt nur noch das Script welches dezimal in hexadezimal wandelt.
Zum Beispiel eine Postleitzahl:
50672 dezimal als hex 00C5F0
77815 dezimal als hex 012FF7
die führende 0 würde ich dann ggf. wieder über den Format Adapter, rechtsbündig auffüllen.
Herzlichen Dank für Ihre Hilfe,
viele Grüße
Sascha Heuser
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Sascha Heuser
- Autor
- Offline
- Benutzer
- Beiträge: 20
eben noch festgestellt, die Umlaute werden vom Script nicht korrekt in hex umgerechnet
Alles wird in 3F = ? codiert statt richtig:
Ä = c4, ä = e4, Ü = dc, ü = fc, Ö = d6, ö = f6, ß = df
dazu noch die richtige Umrechnung der Dezimalwerte wie zuvor geschrieben und wir sind am Ziel
Danke und viele Grüße
Sascha Heuser
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
um Dezimalzahlen als eine HEX formatierte Zeichenkette auszugeben benötigen Sie unten stehendes Skript, im Anhang finden Sie ein kleines Beispiel (dezimal-nach-hex-konvertieren.zip) wie es angewendet wird.
Zu den Umlauten
Im Ursprünglichen DOS ASCII Zeichensatz gab es keine deutschen Umlaute Daher wird hier bei der Umwandlung immer der gleiche HEX Wert ausgegeben. Wenn Umlaute berücksichtigt werden sollen müssen Sie in den zur Verfügung gestellten Skripten die Zeile
austauschen mit
Hiermit wird dann zur Umwandlung die für Deutschland mit Umlauten aufgebohrte Variante des ASCII Zeichensatzes (Codepage 850) verwendet.
Allerdings sind die von Ihnen aufgezeigten HEX Werte für die Umlaute keine ASCII Werte sondern deuten auf eine Windows ANSI Codepage hin. Hier sind zwar die meisten normalen Zeichen (Buchstaben) gleich, bei Umlauten gibt es aber Abweichungen (siehe weiteres Beispiel "ascii-ansi-vergleich.zip" im Anhang ). Wenn Sie dies benötigen müssen Sie die Zeile wie folgt austauschen und sollten das richtige Ergebnis haben.
Hier finden Sie weitere Infos zur Umwandlung von ASCII Zeichensatz nach ANSI
MS DOS ASCII CSV zu Windows ANSI FlatFile konvertieren
Windows ANSI FlatFile zu MS DOS ASCII CSV konvertieren
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Sascha Heuser
- Autor
- Offline
- Benutzer
- Beiträge: 20
damit komm ich zurecht. An sich darf jetzt nichts mehr passieren.
Herzlichen Dank und ein schönes Wochenende!
Sascha Heuser
Bitte Anmelden oder Registrieren um der Konversation beizutreten.