Dynamischer Daten Import / Export

datenbank

weil Einfach - produktiver ist
Mit der Freeware Version können bis zu 10.000 Datensätze verarbeitet werden!
Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:
Willkommen im FlowHeater Support Forum!

Hier werden Fragen zum Umgang mit dem FlowHeater beantwortet.

THEMA: 2 Read Textspalten in 1 Write Spalte mit Bearbeitu

2 Read Textspalten in 1 Write Spalte mit Bearbeitu 5 Monate 2 Tage her #2745

  • Mueck
  • Muecks Avatar
  • Offline
  • New Member
  • Beiträge: 12
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
Der Administrator hat öffentliche Schreibrechte deaktiviert.

2 Read Textspalten in 1 Write Spalte mit Bearbeitu 5 Monate 1 Tag her #2746

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Administrator
  • Beiträge: 1099
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.
Letzte Änderung: 5 Monate 1 Tag her von FlowHeater-Team.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

2 Read Textspalten in 1 Write Spalte mit Bearbeitu 4 Monate 4 Wochen her #2747

  • Mueck
  • Muecks Avatar
  • Offline
  • New Member
  • Beiträge: 12
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
Der Administrator hat öffentliche Schreibrechte deaktiviert.

2 Read Textspalten in 1 Write Spalte mit Bearbeitu 4 Monate 4 Wochen her #2748

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Administrator
  • Beiträge: 1099
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.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

2 Read Textspalten in 1 Write Spalte mit Bearbeitu 4 Monate 3 Wochen her #2749

  • Mueck
  • Muecks Avatar
  • Offline
  • New Member
  • Beiträge: 12
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
Der Administrator hat öffentliche Schreibrechte deaktiviert.

2 Read Textspalten in 1 Write Spalte mit Bearbeitu 4 Monate 3 Wochen her #2751

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Administrator
  • Beiträge: 1099
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.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

2 Read Textspalten in 1 Write Spalte mit Bearbeitu 4 Monate 3 Wochen her #2755

  • Mueck
  • Muecks Avatar
  • Offline
  • New Member
  • Beiträge: 12
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
Der Administrator hat öffentliche Schreibrechte deaktiviert.
Moderatoren: FlowHeater-Team
Ladezeit der Seite: 0.095 Sekunden