- Beiträge: 17
Splitt, Filter, search von CSV-Datei
- Gerhard Samstag
- Offline
- Benutzer
Weniger
Mehr
3 Jahre 6 Monate her #4306
von Gerhard Samstag
Splitt, Filter, search von CSV-Datei wurde erstellt von Gerhard Samstag
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
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.
- FlowHeater-Team
- Autor
- Offline
- Administrator
3 Jahre 6 Monate her #4307
von FlowHeater-Team
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.
FlowHeater-Team antwortete auf Splitt, Filter, search von CSV-Datei
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
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
Code:
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;
}
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.
- Gerhard Samstag
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 17
3 Jahre 6 Monate her #4310
von Gerhard Samstag
Gerhard Samstag antwortete auf Splitt, Filter, search von CSV-Datei
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
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.
Ladezeit der Seite: 0.271 Sekunden