Zum Hauptinhalt springen
Weil einfach - produktiver ist

Der Daten Spezialist

Konvertieren Sie die Daten mühelos zwischen verschiedenen Formaten ohne Programmierkenntnisse dank Visual Designer. Effizient und super einfach.
Flowheater Chart

Dezimalwerte in Hexadezimalwerte

Mehr
8 Jahre 3 Monate her #2837 von Ralf Birk
Dezimalwerte in Hexadezimalwerte wurde erstellt von Ralf Birk
Hallo Herr Stark,

mit Interesse habe habe ich letzte Woche den Thread zun Konvertierung von Ansi in Hex gelesen.
Ich habe seit längerem eine Aufgabe am laufen, die eine ähnliche Aufgabenstellung hat.
In einem Readfeld sind 126 Zeihen (Dezimalcodes zu 42 Stellen). Diese brauche ich im Write als Hexadezimalcode.
Ich habe mir vor einem Jahr folgende Lösung zusammengebastelt:
1. Mit Substring die 42 Stellen an den entsprechenden Stellen auslesen.
2. Mit Replace aus einer erstellten Tabelle (im Anhang) die Dec.Werte in Hex.-Werte ersetzen.
3. Mit Append wieder zusammenfügen und in eine Writespalte schreiben.
Bei zum Teil über 1 Mio. Datensätze ist dies z.T. eine Zeitraubende Angelegenheit.
Liese sich dies nicht auch über ein kurzes Netscript einfacher erledigen?

Danke schon einmal für Ihre Antwort




Ralf B.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
8 Jahre 2 Monate her - 8 Jahre 2 Monate her #2838 von FlowHeater-Team
FlowHeater-Team antwortete auf Dezimalwerte in Hexadezimalwerte
Hallo Herr Birk,

ja, mit dem .NET Script Heater geht „fast“ alles :)

Ich habe Ihnen mal ein kleines Beispiel Skript erstellt, das aus dem Feldinhalt alle 3 Zeichen den vorhandenen Dezimalwert in einen als Hexadezimal formatierte Zeichenkette wieder ausgibt. Das Sie geschrieben haben, dass In Ihrem Feldinhalt auch Zeilenumbrüche vorhanden sein können, unterstützt das Skript das auch und gibt in dem Fall natürlich auch die vorhanden Zeilenumbrüche wieder mit aus.

Beispiel Skript
Code:
public object DoWork() { if (InValues.Length != 1) throw new Exception("1 Eingangsparameter erwartet!"); string content = (string)InValues[0].GetString(); StringBuilder sb = new StringBuilder(); // über alle Zeilen des Feldinhaltes foreach(string line in content.Split('\n')) { // evtl. Zeilenumbruch glätten (Windows/Unix) string s = line.Replace("\r", ""); // falls mehrere Zeilen im Feldinhalt pro Zeile wieder einen Zeilenumbruch ausgeben. if (sb.Length != 0) sb.Append(Environment.NewLine); int pos = 0; while (pos < s.Length) { string dec = String.Empty; // die nächste 3 Stellen bzw. den Rest aus der Zeichenkette holen if (s.Length - pos >= 3) dec = s.Substring(pos, 3); else dec = s.Substring(pos); // Zeichenfolge in eine Zahl umwandeln int i = Convert.ToInt32(dec); // Zahl als HEX formatierte Zeichenkette ausgeben. string hex = i.ToString("X"); // evtl. führende 0 an den HEX Wert anfügen sb.Append(hex.PadLeft(2, '0')); // pos um drei stellen weiter setzen pos += 3; } } // Hexadezimal formatierte Zeichenkette zurückgeben return sb.ToString(); }

Im Anhang finden Sie das Beispiel dazu.

PS: Sie können den Wust an Heatern und Verbindungen recht einfach und übersichtlich über Layer anordnen. Gehen Sie z.B. mal auf dem String Append Heater mit der rechten Maustaste und wählen aus dem Kontextmenü den Eintrag „Auf neuen Layer verschieben“ und schauen Sie sich an was passiert :)

Dateianhang:

Dateiname: decimal-he...eren.zip
Dateigröße:2 KB

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.
Letzte Änderung: 8 Jahre 2 Monate her von FlowHeater-Team.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
8 Jahre 2 Monate her #2839 von Ralf Birk
Ralf Birk antwortete auf Dezimalwerte in Hexadezimalwerte
Hallo Herr Stark,

das ganze sieht in der Tat relativ unübersichtlich aus, ist aber schon ca 2 Jahre alt und stammt noch aus meinen ersten Versuchen mit dem Flowheater.
Mittlerweile verwende ich zur Übersichtlichkeit natürlich Layers.
Ich werde versuchen, ob ich am Wochenende dazu komme, den .fhd auf Ihre Lösung umzustellen.

Vielen Dank nochmal und ein sonniges Wochenende

Gruß Ralf B.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Ladezeit der Seite: 0.270 Sekunden
FlowHeater Logo

FlowHeater - Der Daten Spezialist

Effiziente Datenintegration und Transformation mit FlowHeater - Ihre Lösung für nahtlosen Datentransfer.

Rechtliches

Support & Kontakt

Kontaktinformation

Telefon:
0951 / 99339792

E-Mail:
Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein.


Copyright © 2009-2024 by FlowHeater GmbH. Alle Rechte vorbehalten.