Skip to main content
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 Download

2 Read Textspalten in 1 Write Spalte mit Bearbeitu

Mehr
7 Jahre 8 Monate her #2745 von Mueck
Hallo zusammen,
ich habe in der Datenbank zwei jeweils 60 Zeichen lange Textfelder, in denen einen Artikelkurzbeschreibung steht. Diese beiden Felder sollen in eine Spalte geschrieben werden. Das Problem ist, dass in der ersten Spalte die Texte natürlich nicht gleich lang sind und hinter dem letzten Wort mal ein Komma steht und mal nicht.

Hier ein Beispiel, wo das Komma hinter dem letzten Wort im ersten Feld fehlt::
Feld1: Herbertz Damaszener Messer, 71 Lagen, Wurzelholz-Schalen
Feld2: Edelstahlbeschläge, Lederscheide mit Gürtelschlaufe

So soll es aussehen:
Herbertz Damaszener Messer, 71 Lagen, Wurzelholz-Schalen, Edelstahlbeschläge, Lederscheide mit Gürtelschlaufe

Gibt es eine Möglichkeit, die Texte sauber formatiert in eine Spalte zu bringen.

Viele Grüße
Helmut Mueck

Bitte Anmelden um der Konversation beizutreten.

Mehr
7 Jahre 8 Monate her - 7 Jahre 8 Monate her #2746 von FlowHeater-Team
Hallo Herr Mueck,

ja :) Sie benötigen dazu aber einige Heater/Funktionen , im Anhang finden Sie ein kleines Beispiel dazu.

Um ein evtl. vorhandenes Zeichen am Ende zu prüfen können Sie den IF-THEN-ELSE Heater verwenden mit der Bedingung Endet mit (*=) verwenden, als zu prüfendes Zeichen geben Sie hier das Komma ein.

Wenn nun das Letzte Zeichen ein Komma ist wird es ein wenig komplex. Um dieses Zeichen zu entfernen gehe ich mal folgenden Weg.
  1. Über den String Reverse Heater wird die Zeichenreihenfolge umgekehrt, so dass das Komma am Anfang steht.

  2. Dieses Zeichen kann nun aus der umgekehrten Zeichenfolge mit dem SubString Heater entfernt werden. Hier müssen alle Zeichen ab der zweiten Position extrahiert werden.

  3. Zum Schluss muss die Zeichenkette mittels des String Reverse Heater wieder in die normale Reihenfolge umgekehrt werden.

Wenn das Letzte Zeichen kein Komma ist kann der Feldinhalt direkt zum String Append Heater weitergereicht werden (= ELSE Zweig = 3. IF/THEN/ELSE Eingangsparameter). Mit dem String Append Heater fügen Sie die beiden CSV Spalten mit dem Trennzeichen „Komma + Leerzeichen“ zu einer Zeichenkette zusammen und füllen damit Ihre Ausgabe CSV Spalte.

Kling hier sehr theoretisch und kompliziert, ich denke wenn Sie sich das Beispiel ansehen wird es etwas klarer.

Dateianhang:

Dateiname: csv-spalte...egen.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.
Anhänge:
Letzte Änderung: 7 Jahre 8 Monate her von FlowHeater-Team.

Bitte Anmelden um der Konversation beizutreten.

Mehr
7 Jahre 8 Monate her #2747 von Mueck
Hallo Herr Stark,
vielen Dank für die ausführliche Beschreibung und das Beispiel. Ich habe es heute gleich ausprobiert. Dabei ist mir aufgefallen, dass offensichtlich bei vielen Artikeln das zweite Feld der Kurzbeschreibung leer ist. Das lässt sich vermutlich mit einem weiteren ELSE Zweig abfangen?
Bei den Artikeln, woe beide Felder gefüllt sind, ergibt sich im Ergebnis ein völlig uneinheitliches Bild. Mal passt alles, beim nächsten Artikel hat das Komma einen Abstand zum Wort und das auch nicht einheitlich, sondern mit verschiedenen Abständen. Ich habe keine Erklärung für dieses Verhalten.
Deshalb sende ich Ihnen mal einen Datensatz und die Definition per Mail und bitte um Ihre Hilfe.

Viele Grüße
Helmut Mueck

Bitte Anmelden um der Konversation beizutreten.

Mehr
7 Jahre 8 Monate her #2748 von FlowHeater-Team
Hallo Herr Mueck,

Sie haben mir leider mein ursprüngliches Beispiel zukommen lassen plus Ihre CSV Eingangsdatei.

Zum besseren Verständnis habe ich mal eine kleine CSV Testdatei Testdatei mit beigefügt. Hier werden denke ich alle relevanten Fälle abgedeckt. Da in Ihrer CSV Datei die Spalten Feste Breiten haben stehen hier ziemlich viele Leerzeichen am Ende der Spalte zum Auffüllen.

Das Beispiel habe ich nun dementsprechend angepasst, so dass Leerzeichen am Anfang und Ende der Zeichenfolge über den String Trim Heater abgeschnitten werden. Zusätzlich habe ich noch im String Append Heater die Option „Leere Felder ignorieren“ aktiviert (siehe Screenshot), so landet in der Ausgabespalte keine zusätzliches Komma als Trennzeichen falls eines der beiden Spalten keinen Inhalt hat!



Dateianhang:

Dateiname: csv-spalte...en-2.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.
Anhänge:

Bitte Anmelden um der Konversation beizutreten.

Mehr
7 Jahre 8 Monate her #2749 von Mueck
Hallo Herr Stark,
vielen Dank. Bis auf einen Fall funktioniert das jetzt.
Wenn das erste Feld nicht vollständig gefüllt ist und das Komma hinter dem letzten Wort fehlt, bleibt beim zusammenfügen zwischen dem letzten Wort und dem Komma ein größerer Leerraum. Ist das erste Feld ist auf das letzte Zeichen gefüllt und das letzte Zeichen ist kein Komma, werden die beiden Felder richtig zusammengesetzt. Beispiel und Definition kommen gesondert per Mail (hoffentlich diesmal die richtigen :) )

Viele Grüße
Helmut Mück

Bitte Anmelden um der Konversation beizutreten.

Mehr
7 Jahre 8 Monate her #2751 von FlowHeater-Team
Hallo Herr Mueck,

das können Sie auf zwei Arten lösen.
  1. In Ihre Definition haben Sie im ELSE Zweig (= 3. IF Eingangsparameter) das ODBC Feld „ktext“ direkt verbunden! Wenn Sie diese Verbindung löschen und den Inhalt aus dem String Trim Heater verwenden, werden unnötigen Leerzeichen (whitespace) aus dem Feldinhalt entfernt und die Ausgabe passt, siehe Screenshot 1

  2. Alternativ dazu haben Sie auch die Möglichkeit in den erweiterten Adaptereigenschaften die Option „Leerzeichen automatisch am Anfang und Ende des Inhaltes entfernen“ zu aktivieren. So werden unnötige Leerzeichen automatisch entfernt, der String Trim Heater ist dann nicht mehr notwendig, siehe Screenshot 2




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.
Anhänge:

Bitte Anmelden um der Konversation beizutreten.

Mehr
7 Jahre 8 Monate her #2755 von Mueck
Hallo Herr Stark,

mit der Variante 1 funktioniert jetzt die Zusammenführen der beiden Felder einwandfrei.
Vielen Dank für die Unterstützung.

Viele Grüße
Helmut Mück

Bitte Anmelden um der Konversation beizutreten.

Ladezeit der Seite: 0.552 Sekunden

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.