Ich dachte ich mache mal nen neuen Thread auf da es sich nun doch um komplett eigenständigen code handeln soll.
Also, Ausgangssituation.
Ich habe eine Datei namens lamedb, in der Infos stecken, die ich haben will.
Der Aufbau der Datei ist folgender:
Code: Alles auswählen
transponders
0028ad55:0001:ffff
s 11605000:2894000:1:3:40:2:0
/
00c00000:03f3:0001
s 11361750:22000000:0:2:192:2:0:1:2:0:2
/
014ab0ea:0000:0001
s 12522000:27500000:1:4:330:2:0
/
end
services
2b66:00c00000:03f3:0001:25:0
ZDF HD
p:ZDFvision
2b5c:00c00000:03f3:0001:25:0
Das Erste HD
p:ARD,c:00177a,c:011784,c:02178e,c:03177a,c:050001
end
Code: Alles auswählen
transponder
end
Code: Alles auswählen
services
end
Die Werte für den Sender und für jeden anderen stecken in 3 Zeilen, wobei die erste Zeile immer aus 6 Werten getrennt durch ":" besteht, die zweite auch leer sein kann aber dann eben auch als "nichts" eingetragen werden muss und die 3te zeile kann, muss aber nichts enthalten, muss aber ebenfalls vorhanden sein.
also, immer 3 zeilen pro sender.
Code: Alles auswählen
2b5c:00c00000:03f3:0001:25:0
Das Erste HD
p:ARD,c:00177a,c:011784,c:02178e,c:03177a,c:050001
Code: Alles auswählen
03f3
transpondereinträge sind IMMEr zwei zeilen, die wiederum vom nächsten transponder durch "/" getrennt sind.
der zugehörige transponder für unser beispiel wäre
Code: Alles auswählen
00c00000:03f3:0001
s 11361750:22000000:0:2:192:2:0:1:2:0:2
ich müsste also irgendwie zwischen "services" und dem folgenden "end" alle dreizeiler auslesen und am besten alle werte, die durch ":" oder einen zeilenumbruch getrennt sind, in eine neu sortierte zeile speichern.
dazu muss zu dem jeweiligen sender der transponder gesucht werden und dessen werte, die ebenfalls durch ":" und zeilenumbruch getrennt sind, allen sendern mit diesem wert zugewiesen werden.
sodass im prinzip alle transponderinfos und senderinfos am ende nur noch in einer zeile pro sender stehen.
in meinem beispiel haben "das erste hd" und "zdf hd" den gleichen transponder ("03f3") und brauchen somit beide sämtliche werte dieses transponders.
sie würden also am ende so aussehen (das ist eine lange zeile, falls das in eurem browser mit zeilenumbruch steht):
Code: Alles auswählen
namespace#frequency#symbol_rate#......
an sich glaube ich sind die meisten grundlagen hier schon drin.
nur wie ich daraus nun eben ne neue datei mit den ganzen angaben erzeuge, die alle in einer zeile liegen, bin ich nicht sicher
hier mal der code:
http://www.python-forum.de/pastebin.php?mode=view&s=15