Überlesen von Zeilen

1 view
Skip to first unread message

Spiessa

unread,
Mar 10, 2010, 3:27:28 AM3/10/10
to FlowHeater
Wir haben Files, das unterschiedlich viele Zeilen als Header und einen
Footer hat. Die umzuwandelnden Zeilen beginnen mit einem Codewort,
z.B.

BEGINN TABELLE XYZ in der ersten Kolonne

Das Ende der auszuwertenden Zeilen ist mit ENDE TABELLE XYZ bezeichnet

Wie kann ich alle unnötigen Zeilen vor und nach diesen Codewörtern
überspringen?

Gruss Andreas

flowheater

unread,
Mar 10, 2010, 6:05:29 AM3/10/10
to FlowHeater
Hallo Andreas,

dazu benötigst du den Filter Heater zusammen mit dem IfThenELse
Heater.
http://www.flowheater.de/help/hfilter.htm
http://www.flowheater.de/help/hifthenelse.htm

Damit der in deinem Vorhaben richtig funktioniert brauchst du
zusätzlich noch einen Split Heater.
http://www.flowheater.de/help/hsplit.htm

Füge deiner Definitionen alle 3 Heater auf dem Designer hinzu.
Verbinde das erste Feld mit dem Split Heater. Im Split Heater gibst du
für das zu suchende Zeichen ein Leerzeichen an und stellst die Return
Spalte auf 1. Den Output verbindest du mit dem IfThenElse Heater. Hier
gibst du als Bedingung lediglich „TABELLE“ an und verbindest diesen
Output mit dem Filter Heater.

Das Beispiel beschreibt hier das Vorgehen bei einer CSV Textdatei. Für
ein FlatFile (Werte getrennt mit festen Längen) ist das Vorgehen
leicht anders.
Ich habe dazu mal 2 Beispiele erstellt. Unter
http://www.flowheater.de/download/examples/filter01.zip
kannst du dir die Beispiele herunterladen und auspropieren.

--
gruß
Robert Stark
http://www.flowheater.de
http://www.flowheater.net

Spiessa

unread,
Mar 10, 2010, 9:30:07 AM3/10/10
to FlowHeater
Hallo Robert

Vielen Dank für deine schnelle Reaktion!

Ich bin mir nicht sicher, ob ich mein Problem gut beschreiben hatte,
denn Dein Vorschlag sieht anders aus.

Unsere Tablle (in Abwandlung Deiner filter.txt) würde so aussehen:

obij
sklfmba
öembkw --> diese Zeilen müssen überlesen werden (incl. BEGINN
TABELLE)
bmwt
BEGINN TABELLE
1;eins
2;zwei --> diese Zeilen müssen importiert werden
3;drei
ENDE TABELLE
kdghioe
rhjstoj
erkgnr --> Diese Zeilen müssen überlesen werden (incl. ENDE TABELLE)
rqohgo

Importiert werden sollten nur die Zeilen zwischen BEGINN TABELLE und
ENDE TABELLE

Ist dieses Problem auch lösbar?

Gruss
Andreas


On 10 Mrz., 12:05, flowheater <r...@flowheater.de> wrote:
> Hallo Andreas,
>
> On 10 Mrz., 09:27, Spiessa <asaru...@gmail.com> wrote:
>
> > Wir haben Files, das unterschiedlich viele Zeilen als Header und einen
> > Footer hat. Die umzuwandelnden Zeilen beginnen mit einem Codewort,
> > z.B.
>
> > BEGINN TABELLE XYZ in der ersten Kolonne
>
> > Das Ende der auszuwertenden Zeilen ist mit ENDE TABELLE XYZ bezeichnet
>
> > Wie kann ich alle unnötigen Zeilen vor und nach diesen Codewörtern
> > überspringen?
>
> dazu benötigst du den Filter Heater zusammen mit dem IfThenELse

> Heater.http://www.flowheater.de/help/hfilter.htmhttp://www.flowheater.de/help/hifthenelse.htm


>
> Damit der in deinem Vorhaben richtig funktioniert brauchst du

> zusätzlich noch einen Split Heater.http://www.flowheater.de/help/hsplit.htm


>
> Füge deiner Definitionen alle 3 Heater auf dem Designer hinzu.
> Verbinde das erste Feld mit dem Split Heater. Im Split Heater gibst du
> für das zu suchende Zeichen ein Leerzeichen an und stellst die Return
> Spalte auf 1. Den Output verbindest du mit dem IfThenElse Heater. Hier
> gibst du als Bedingung lediglich „TABELLE“ an und verbindest diesen
> Output mit dem Filter Heater.
>
> Das Beispiel beschreibt hier das Vorgehen bei einer CSV Textdatei. Für
> ein FlatFile (Werte getrennt mit festen Längen) ist das Vorgehen
> leicht anders.

> Ich habe dazu mal 2 Beispiele erstellt. Unterhttp://www.flowheater.de/download/examples/filter01.zip

flowheater

unread,
Mar 10, 2010, 2:43:01 PM3/10/10
to FlowHeater
Hallo Andreas,

On 10 Mrz., 15:30, Spiessa <asaru...@gmail.com> wrote:
> Hallo Robert
>
> Vielen Dank für deine schnelle Reaktion!
>
> Ich bin mir nicht sicher, ob ich mein Problem gut beschreiben hatte,
> denn Dein Vorschlag sieht anders aus.
>
> Unsere Tablle (in Abwandlung Deiner filter.txt) würde so aussehen:
>
> obij
> sklfmba
> öembkw   --> diese Zeilen müssen überlesen werden (incl. BEGINN
> TABELLE)
> bmwt
> BEGINN TABELLE
> 1;eins
> 2;zwei   --> diese Zeilen müssen importiert werden
> 3;drei
> ENDE TABELLE
> kdghioe
> rhjstoj
> erkgnr   --> Diese Zeilen müssen überlesen werden (incl. ENDE TABELLE)
> rqohgo
>
> Importiert werden sollten nur die Zeilen zwischen BEGINN TABELLE und
> ENDE TABELLE
>
> Ist dieses Problem auch lösbar?

Sorry, das habe ich dann etwas falsch verstanden. Das geht natürlich
auch!

Ich hab das Beispiel angepasst. Hier wird jetzt der .NET Script Heater
verwendet um diese Logik abzubilden, ohne geht’s leider nicht. Das
Script merkt sich quasi den letzen Stand und reicht zum Filter Heater
die notwendige Information/Aktion weiter (filtern = true oder
verarbeiten = false). Klingt jetzt etwas kompliziert, im Beispiel wird
das denke ich etwas klarer. Das Skript kannst du Dir über einen
Doppelklick auf den Heater ansehen.

http://www.flowheater.de/download/examples/filter02.zip

Reply all
Reply to author
Forward
0 new messages