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

Überlanges Textfeld sinnvoll teilen

Mehr
1 Jahr 7 Monate her #4817 von Ralf Birk
Überlanges Textfeld sinnvoll teilen wurde erstellt von Ralf Birk
Hallo Robert,

ich muss hier Lieferlisten bearbeiten, auf deren Inhalt ich leider keinen Einfluss habe.
Mit diversen Zeilenumbrüchen, Steuerzeichen usw. in einzelnen Datenfeldern komme ich klar.
Bei einigen Namensfeldern wurden aber leider "Romane" hineingeschrieben. Diese müsste ich sinnvoll auf bis zu vier Felder verteilen (Das würde nach jetzigen Stand ausreichen)
Ich habe vor einigen Jahren ein C++ für dieses Problem eingesetzt (war bestimmt von dir).
Leider funktioniert dieses nicht wie gewünscht.
Im Script gibt man die max. Datenfeldlänge ein (in diesem Fall 30) die die einzelnen Segmente getrennt werden (immer Rückwärts bis zum letzten Blank).
Beim ersten Teil funktioniert die noch, dann werden nur noch kleine Teilstücke zerlegt, so dass am Ende Teile der Feldes fehlen.
Wo könnte der Fehler in dem Script sein?

Hier der längste Datensatz im Eingangsdatenfeld: 
Testname1234 Musterpunk c/o ma-Testhause, Warenannahme3 , Testname1234/Musterpunk (ABC Service GmbH & Co KG)

Aus dem Script kommt:
Testname1234 Musterpunk c/o-#-ma-Testhause,-#-Warenannahme3-#-,-#-Testname1234/Musterpunk-#-(ABC-#-Service-#-GmbH-#-&-#-Co-#-KG)
was in der Ausgabe der 4 Felder "Testname1234 Musterpunk c/o;ma-Testhause,;Warenannahme3" ergibt

Korrekt abgearbeitet sollte es so aussehen:
Testname1234 Musterpunk c/o;ma-Testhause, Warenannahme3 ,;Testname1234/Musterpunk (ABC;Service GmbH & Co KG)

Hast du einen Tip? Ich denke ähnliche Probleme kommen bestimmt auch bei anderen vor.
Ich hänge mal eine Beispieldefinition mit dem Script an...

PS: Die Geschickte mit dem erweiterten MAX-Adapter habe ich aufgegeben, da ich den Fehler nicht weg bekam.

Gruß Ralf

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
1 Jahr 7 Monate her #4819 von FlowHeater-Team
FlowHeater-Team antwortete auf Überlanges Textfeld sinnvoll teilen
Hallo Ralf,

das Skript war fehlerhaft. Hier die korrigierte C# Version für den .NET Script Heater .

Code:
// hier die Maximale Zeichenketten Länge pro Spalte eintragen. int MaxLen = 30; string sTrennzeichen = "-#-"; public object DoWork() {     if (InValues.Length != 1)             throw new ArgumentException("Es wird ein Eingangsparameter erwartet!");     string sIN = (string)InValues[0].GetString();     string [] sParts = sIN.Split(new char [] {' '}, StringSplitOptions.RemoveEmptyEntries);     string sRet = String.Empty;     int aktLen = 0;     foreach (string sPart in sParts)        {           if ((aktLen + sPart.Length + 1) > MaxLen)                {                  // Trennzeichen enfügen                      sRet += sTrennzeichen;                   aktLen = sPart.Length;                }               else               {                  if (aktLen != 0)                     {                       aktLen++;                        sRet += " ";                      }                     aktLen += sPart.Length;             }               sRet += sPart;       }       return sRet; }

 

Dateianhang:

Dateiname: lange-datenfelder.zip
Dateigröße:3 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.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
1 Jahr 7 Monate her - 1 Jahr 7 Monate her #4820 von Ralf Birk
Ralf Birk antwortete auf Überlanges Textfeld sinnvoll teilen
Hallo Robert,

vielen Dank....
Mit dem korrigierten Script ist das Ergebnis perfekt.
Hast du dich über den merkwürdigen Replace-Heater in dem Beispiel gewundert?
Das war die einzige Möglichkeit bei 2 und mehr definierten Zeichen hintereinander in einem Datenfeld alles über 1. Stelle zu eliminieren.
Oder gibt es mit den "Standard-Heatern" eine Möglichkeit sollche "wirren" Daten zu reparieren um diese automatisiert zu verwenden?
Beispiel:
"Hamburger Druck GmbH & Co.KG / Warenannahme DS                                                                               über BZ-Auffahrt (Beschilderung beachten)"

Gruß Ralf
Letzte Änderung: 1 Jahr 7 Monate her von Ralf Birk.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
1 Jahr 7 Monate her #4821 von FlowHeater-Team
FlowHeater-Team antwortete auf Überlanges Textfeld sinnvoll teilen
Hallo Ralf,

das kannst du mit dem String Replace Heater und der Option „Ersetzen so lange wiederholen bis nicht mehr gefunden“ durchführen.

Bei Suchen trägst du zwei Leerzeichen ein und bei ersetzen ein Leerzeichen. Am Ende sind in deiner Zeichenfolge keine mehrfach aufeinanderfolgende Leezeichen vorhanden.


 

 

Dateianhang:

Dateiname: alle-leerz...rnen.zip
Dateigröße:5 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.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
1 Jahr 7 Monate her #4822 von Ralf Birk
Ralf Birk antwortete auf Überlanges Textfeld sinnvoll teilen
Hallo Robert,

so einfach kann die Welt sein.
Ich habe habe bei meinen Versuchen mit "Ersetzem so lange...." 1 Blank durch nichts ersetzt, dann sind ja auch die gewollten weg.
Ich habe gedacht mit dieser Einstellung geht er einmal den Inhalt durch und nicht in einer Schleife. Danke...

Gruß Ralf

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Ladezeit der Seite: 0.285 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.