- Beiträge: 3
Zeileninhalt in definierte Blöcke teilen
- Wolfgang Kreutzer
- Autor
- Offline
- Benutzer
Weniger
Mehr
2 Jahre 11 Monate 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
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.
- FlowHeater-Team
- Offline
- Administrator
2 Jahre 11 Monate her - 2 Jahre 11 Monate her #4414
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 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
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);
}
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: 2 Jahre 11 Monate her von FlowHeater-Team.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Wolfgang Kreutzer
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 3
2 Jahre 11 Monate her #4415
von Wolfgang Kreutzer
Wolfgang Kreutzer antwortete auf Zeileninhalt in definierte Blöcke teilen
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
2 Jahre 10 Monate her - 2 Jahre 10 Monate her #4429
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 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
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
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: 2 Jahre 10 Monate her von FlowHeater-Team.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Wolfgang Kreutzer
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 3
2 Jahre 10 Monate her #4432
von Wolfgang Kreutzer
Wolfgang Kreutzer antwortete auf Zeileninhalt in definierte Blöcke teilen
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
Ladezeit der Seite: 0.285 Sekunden