
Folgendes Setting:
- Eingabedatei (txt)
- Ausgabedatei (txt)
Aus der Eingabedatei sollen bestimmte Informationen gezogen werden und in einer etwas anderen Form in die Ausgabedatei geschrieben werden.
Das habe ich soweit auch schon ziemlich gut hinbekommen, nur stehe ich nun vor folgender Schwierigkeit:
Ich gehe per
Code: Alles auswählen
for line in eingabedatei
Die Informationen befinden sich aber nicht alle in der ersten Zeile, sondern in Blocks zu je drei Zeilen oder mehr. Man kann sich die Eingabedatei etwa so vorstellen:
vorlauf... bla
120 Informationszeile A1
500 Informationszeile B1
600 Informationszeile C1
600 Informationszeile C1
600 Informationszeile C1
120 Informationszeile A2
500 Informationszeile B2
600 Informationszeile C2
usw.
D.h. also, ich kann den "Zeilentyp" A, B oder C (die jeweils einen verschiedenen Aufbau haben) leicht anhand des Zeilenbeginns erkennen (und frage dies entsprechend per "if" ab).
Wenn ich nun aber per "for line in eingabedatei" die Aer Zeilen durchgehe, möchte ich dabei auch irgendwie die darunterstehenden Informationen in B und C mitnehmen.
Das klappt teilweise auch, indem ich
Code: Alles auswählen
eingabedatei.next
Dies klappt aber irgendwie nur teilweise, das Ergebnis gerät irgendwie durcheinander. Problem ist hierbei auch, dass die Informationen, die letztlich in der Ausgabedatei stehen, wild aus den Informationen aus Zeile A, B und C durcheinandergewürfelt sind, d.h. ich muss etwa schreiben (nur Pseudocode:)
Code: Alles auswählen
ausgabedatei = eingabedatei.Informationszeile A[1:3] + eingabedatei.Informationszeile C[2:3] + eingabedatei.Informationszeile B[4:7] + eingabedatei.Informationszeile A[4:5]
Habe leider den Code nicht zuhause vorliegen.... hoffe das war einigermassen verständlich. Ich muss noch dazu sagen, dass es von der Laufzeit her überhaupt nicht perfekt sein muss (da die Dateien eh sehr klein sind) und ich viel mehr nach dem allersimpelstem Weg (falls möglich) ohne Listen etc. suche. Würde mich sehr über eine Antwort freuen...