Der Daten Import / Export Spezialist
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

Zeileninhalt in definierte Blöcke teilen

  • Wolfgang Kreutzer
  • Autor
  • Offline
  • Neues Mitglied
  • Neues Mitglied
Mehr
1 Jahr 1 Monat her #4413 von Wolfgang Kreutzer
Zeileninhalt in definierte Blöcke teilen wurde erstellt von Wolfgang Kreutzer
Hallo & schönen Aband!

Nachdem ich bei meiner Suche hier im Forum (noch) nicht fündig geworden bin, möchte ich hier mein Problem schildern und auf eure Unterstützung hoffen:

Ich erhalte regelmäßig Dateien mit unterschiedlicher Zeilenanzahl- und Länge, wobei ich den Inhalt der Zeilen in definierte Blöcke aufteilen soll.
Der Aufbau ist dabei grundsätzlich so:
[leerzeichenloser_String_1]<space>[leerzeichenloser_String_2]<space>[leerzeichenloser_String_3]<space>[String_der_auch_beliebig_viele_Leerzeichen_enthalten_kann]

Die Länge der einzelnen Strings ist variabel, sonst hätte ich den Heater SubString genommen, für den aber die Länge des zu extrahierenden Teilstrings bekannt sein muss.

Daher habe ich es mal mit dem Heater Split versucht, der mir die ersten 3 (leerzeichenlosen) Strings auch anstandslos ausgibt. Der letzte Teil der Zeile wird aber leider aufgrund der enthaltenen Leerzeichen ebenfalls zerstückelt - den hätte ich aber gerne als einen zusammenhängenden 4. String ausgegeben - so frei nach dem Motto "gib mir alles nach dem 3. Leerzeichen aus". Scheinbar funktioniert Split aber nicht so (oder ich hab's noch nicht richtig verstanden).

Wie könnte eine Lösung mit den vorhandenen Bordmitteln aussehen oder geht das nur mit einem Skript?

Danke schon vorab für die Unte

 

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
1 Jahr 1 Monat her - 1 Jahr 1 Monat her #4414 von FlowHeater-Team
FlowHeater-Team antwortete auf Zeileninhalt in definierte Blöcke teilen
Hallo Herr Kreutzer,

bei der Erstellung eines Beispiels dafür, ist mir aufgefallen, dass der SubString Heater keine FlowHeater Parameter für den „Start Index“ sowie für die Länge zulässt. So ist das aktuell nur mit einem zusätzlichen .NET Script Heater und untenstehenden C# Skript durchführbar.

Das Skript kann einfach in den .NET Script Heater kopiert werden und liefert dynamisch die Zeichenfolge nach dem dritten Leerzeichen zurück. Im Anhang finden Sie ein kleines Beispiel dazu.

PS: Der SubString Heater wird mit der nächsten Version angepasst, so dass hier dynamisch auch FlowHeater Parameter verwendet werden können und das ganze ist ohne Skript durchführbar.

C# Skript
Code:
public object DoWork() {     if (InValues.Length != 1)         throw new Exception("1 Eingangsparameter erwartet!");     string input = (String)InValues[0].GetString();     // Erstes Leerzeichen suchen     int pos = input.IndexOf(" ");     // Zweites Leerzeichen suchen     pos = input.IndexOf(" ", pos + 1);     // Neu Zeichenfolge ab dritten Leerteichen zurückgeben     return input.Substring(pos + 1); }


 

Dateianhang:

Dateiname: spalten-dy...ilen.zip
Dateigröße:7 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: 1 Jahr 1 Monat her von FlowHeater-Team.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Wolfgang Kreutzer
  • Autor
  • Offline
  • Neues Mitglied
  • Neues Mitglied
Mehr
1 Jahr 1 Monat her #4415 von Wolfgang Kreutzer
Wolfgang Kreutzer antwortete auf Zeileninhalt in definierte Blöcke teilen
Vielen lieben Dank für die rasche Antwort und den Beispielcode!

Es hat genauso funktioniert, wie ich es mir vorgestellt habe ...

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
1 Jahr 4 Wochen her - 1 Jahr 4 Wochen her #4429 von FlowHeater-Team
FlowHeater-Team antwortete auf Zeileninhalt in definierte Blöcke teilen
Hallo Herr Kreutzer,

Mit der aktuellen Beta Version wurde SubString Heater dementsprechend angepasst so dass dieser nun auch FlowHeater Parameter unterstützt. Im Anhang finden Sie auch ein angepasstes Beispiel dazu.

Die aktuelle Beta Version können Sie über folgenden Link herunterladen: Download Beta Version


 

Dateianhang:

Dateiname: spalten-dy...en-2.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.
Letzte Änderung: 1 Jahr 4 Wochen her von FlowHeater-Team.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Wolfgang Kreutzer
  • Autor
  • Offline
  • Neues Mitglied
  • Neues Mitglied
Mehr
1 Jahr 2 Wochen her #4432 von Wolfgang Kreutzer
Wolfgang Kreutzer antwortete auf Zeileninhalt in definierte Blöcke teilen
Vielen Dank

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Ladezeit der Seite: 0.400 Sekunden

andere Sprachen

en

FlowHeater Home

de en

Impressum/Kontakt

Datenschutz

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

Follow us on

twitter  facebook

YouTube

 de en