Der Daten Import / Export Spezialist
 
Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:
Schauen Sie sich auch die verfügbaren Beispiele zum TextFile Adapter an evtl. kann Ihre Frage hiermit schon beantwortet werden: Codepage konvertieren 1 / 2 , Verarbeitung von CSV Kopf- und Fußzeilen , Import und Export von vCard Textdateien
  • Seite:
  • 1

THEMA:

Splitt, Filter, search von CSV-Datei 5 Monate 3 Wochen her #4306

Hallo Robert,

ich bräuchte mal Deine Unterstützung. Folgendes Szenario darf ich bewältigen:
1) Lesen einer CSV-Datei und schreiben in einen SQL-Server
2) Diverse Felder werden dabei gemappt.
3) Ein Feld beinhaltet jetzt meine Herausforderung. Das Feld kann z.B. folgenden Inhalt haben (Trennzeichen ist immer ein Leerzeichen):
"aa bb cc-like-dd ee ff"
"dd-like-gg kk jj uu"
"ee uu zz uu-like-vv"
"ii-like-bb"

Das Ergebnis was ich in eine Spalte auf der Write-Seite schreiben muss ist:
"cc-like-dd"
"dd-like-gg"
"uu-like-vv"
"ii-like-bb"
Das Zauberwort-Wort lautet "-like-". Den Text rechts und links von "-like-" muss ich auch unbedingt übertragen.

Als möglich Lösung ist mir eingefallen, dass ich im ersten Verarbeitungsschritt die Datei "normal" und ohne dieses Feld verarbeite. Im zweiten Verarbeitungsschritt lese ich nur die Zeilen-ID und dieses Feld ein, nutze dann einen Splitt-Header auf die erste Spalte und Filtere dann nach "-like-" (wobei ich den Bergriff "contain" im Heater noch finden muss) und schreibe bei einem Treffer den Inhalt per Update in die Tabelle. Das wiederholte ich dann in weiteren Verarbeitungsschritten für alle möglichen weiteren Spalten (max 9).

Hättest Du da eine elegantere Lösung?

Vielen Dank schon jetzt für Deine Unterstützung und viele Grüße
Gerhard

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Splitt, Filter, search von CSV-Datei 5 Monate 3 Wochen her #4307

  • FlowHeater-Team
  • FlowHeater-Teams Avatar Autor
  • Offline
  • Beiträge: 1683
Hallo Gerhard,

am einfachsten geht es über den .NET Script Heater und untenstehenden kleinen C# Skript. Im Anhang findest du ein kleines Beispiel dazu.

Das Skript erwartet das Feld mit dem CSV Feld als Eingang. Dann wird der Inhalt anhand eines Leerzeichen in einzelne Teile zerlegt. Diese Teile werden nun geprüft ob hier „-like-“ vorkommt. Ist dies der Fall wird dieser Teile zurückgeliefert. Falls die Zeichenfolgen „-like-“ nicht vorkommt wird eine Leere Zeichenfolge zurückgeliefert.

C# Skript: Extended String Split
public object DoWork()
{
    if (InValues.Length != 1)
        throw new Exception("Ein Eingangsparameter erwartet!");

    // Ersten Eingangsparameter holen
    string value = (string)InValues[0].GetString();

    // Aufteilen anhand Leerzeichen als Trennzeichen
    string [] parts = value.Split(' ');

    // über alle Teile gehen und prüfen ob -like- vorkommt
    foreach (string part in parts)
    {
        if (part.IndexOf("-like-", StringComparison.OrdinalIgnoreCase) > 0)
        {
            // wenn gefunden den Teil zurückgeben
            return part;
        }
    }

    // Falls nicht gefunden Leere Zeichenfolge zurückgeben
    return String.Empty;
}


 

Dateianhang:

Dateiname: extented-split.zip
Dateigröße:6 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 oder Registrieren um der Konversation beizutreten.

Splitt, Filter, search von CSV-Datei 5 Monate 3 Wochen her #4310

Hallo Robert,

das ist ja eine super Lösung. Vielen vielen Dank.

Ganz besonders für den extra Service mit der fhd-Datei. Das hat mir sehr geholfen. Die Lösung von Dir ist auch bereits implementiert und funktioniert zu 100%.

Also Danke nochmals und 1000% TOP-JOB
Gerhard
 

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Seite:
  • 1
Ladezeit der Seite: 0.126 Sekunden

andere Sprachen

en

FlowHeater Home

de en

Impressum/Kontakt

Datenschutz

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

Follow us on

twitter  facebook

YouTube

 de en