Ich als Neu-Benutzer von Python habe da mal eine Frage:
Wir haben hier verschiedene Dateien (Isybau-Kanal-Dateien, *.k, *.lk und *.h-Dateien). Die haben auf einer bestimmten Position in Zeilen die Punktnummern stehen. Diese Punktnummer müsste erst kopiert und dann bei der ersten Stelle überschrieben werden mit einer anderen Punknummer, die man(n) dann eingeben müsste, am besten in einer Maske, wo man "neue Punktnummer" und "alte Punktnummer" (zum Suchen) eingeben kann und die Routine sucht und kopiert/ersetzt dann in allen 3 Dateien, dann halt nacheinander die Zeilen alle ab.
Diese Routine müsste dann halt in einer "Endlosschleife" immer wieder nach verrichteter Arbeit wieder andere alte Punktnummern suchen/kopieren und die neuen Punktnummern einsetzen, also Durchläufe, die dann bis zu 5000 Punkte im Rutsch verändert.
Daher müsste bei der "Eingabemaske" Pkt.-Nr. neu, Pkt.-Nr. alt, auch ein "Beenden"-Knopf dabei sein, wenn man fertig ist, und am besten auch eine Nachricht, wieviel mal die letzte Punktnummer gefunden, kopiert und ersetzt wurde...
Vielleicht gibt es sowas ja schon als "Grundgerüst", das ein findiger Programmierer schon bereits "erfunden" hat!?
Die gesuchten alten Punktnummern sind zwischen 2 und 9 Stellen lang, die neuen Punktnummern sind immer 9-stellig!
Bei den alten Punktnummern müssten also immer nach 9 Stellen gesucht werden und der Rest halt mit Leerzeichen gefüllt sein, wenn gesucht wird, wenn die Punktnummer-alt halt weniger wie 9 Stellen hat - zum korrekten Einfügen in der richtigen Position in den Dateien, wobei in den Dateien es unterschiedlich ist, an welcher Position in der Datei die Punktnummer gesucht/kopiert und ersetzt werden soll.
Bei der K-Datei steht der Name bei Spalte 5-14, der Name-2(alter Name) bei 15-24. (Zuerst müsste der Name bei "Name-2" reinkopiert werden in der gleichen Zeile, dann erst der neue Name bei "Name" den jetzigen (alten) Name überschreiben, danach aber noch weiter in der Datei gesucht werden.
Diese Prozedur befindet sich nur in der 1. Hälfte der K-Datei, wobei diese Prozedur auf die Zeile mit Anfang "KS" beschränkt wäre:
Textdateiauszug K-Datei:
KS 131101550 325907.1765546945.4800 360.4420 0
KS 231101550 0.63 0.00R 1.00 1.00N 0.00 0.00 0.00 353.8600 2
KS 331101550 0N NN0
KS 131101551 325955.8945546949.0770 356.9190 0
KS 231101551 0.63 0.00R 1.00 1.00N 0.00 0.00 0.00 353.4600 2
KS 331101551 0N NN0
Die Bezeichnung "KS 1" ist der "Record 1", "KS 2" "Record 2" und "KS 3" der Record 3". Bei diesem Beispiel ist die Nummer-alt nur 8-stellig, der Name-2 ist nicht ausgefüllt. Die Zeilen müssten zum Schluss z.b. so aussehen:
KS 1715652010 31101550 325907.1765546945.4800 360.4420 0
KS 2715652010 0.63 0.00R 1.00 1.00N 0.00 0.00 0.00 353.8600 2
KS 3715652010 0N NN0
KS 1715652012 31101551 325955.8945546949.0770 356.9190 0
KS 2715652012 0.63 0.00R 1.00 1.00N 0.00 0.00 0.00 353.4600 2
KS 3715652012 0N NN0
Das wäre das Endergebnis bei der "Schachtdaten", in der zweiten Hälfte der Datei fängt das Steuerkürzel mit "KH 1", "KH 2" und "KH 3" an und ist ähnlich aufgebaut:
KH 131101550 31101550 31101551 353.860 353.46000 0 300 300 48.85
KH 231101550 0KS 0 B Schloßstraße (MB) 000
KH 331101550 0.000 0.000 0.0002 0.0 0.0 0.0 0.0 0.0 0.0 0.0
KH 131101551 31101551 31101560 353.460 352.39000 0 300 300 31.04
KH 231101551 0KS 0 B Schloßstraße (MB) 000
KH 331101551 0.000 0.000 0.0002 0.0 0.0 0.0 0.0 0.0 0.0 0.0
So sieht das dann bei dem "Haltungsblock" aus!
Demnach müsste die alte Nummer beim Record 1 (KH 1) auch wie bei "KS 1" kopiert und ersetzt werden und bei Record 2 und 3 halt auch wieder vorne die Nummer ersetzt werden wie beim Schachtblock:
KH 1715652010 31101550 715652010 715652012 353.860 353.46000 0 300 300 48.85
KH 2715652010 0KS 0 B Schloßstraße (MB) 000
KH 3715652010 0.000 0.000 0.0002 0.0 0.0 0.0 0.0 0.0 0.0 0.0
KH 1715652012 715652012 31101551 31101560 353.460 352.39000 0 300 300 31.04
KH 2715652012 0KS 0 B Schloßstraße (MB) 000
KH 3715652012 0.000 0.000 0.0002 0.0 0.0 0.0 0.0 0.0 0.0 0.0
Bei dem KH 1 Block steht bei Spalte 25-34 der Von-Schacht, also der gleiche neue Name wie vorne, bei Spalte 35-44 der Bis-Schacht.
Diese zwei Punktnamen wären mit den normalen "Suchen-und Ersetzen" zu finden und zu setzen!
Der Name 2 könnte vorab schon in der Access-DB gesetzt werden, sodaß man sich nicht darum kümmern müsste, allerdings müsste dieser ja dann nicht gesucht und ersetzt werden. Der müsste dann beim Block 1 (KS 1) und Block 2 (KH 1) so stehen bleiben!

Da dieses Prozedere für 2-10000 Punkte durchlaufen müsste, hatte ich mir gedacht, dass ich wenigstens das Suche-Kopieren-Ersetzen mittels Routine vielleicht ersparen könnte. (wobei das "Kopieren" dann rausfallen würde, wenn ich den Name 2 schon in ACCESS kopiere!
Ich wäre für jeglicher Art von Kommentar, Beleidigungen, Ratschläge, Hinweise zur Vorgehensweise, Tipps und Vorschläge dankbar!


Das wäre jetzt im Endeffekt erst die 1. Datei - die K-Datei, bei den anderen 2 Dateien ist es ähnlich - auch mit Records!
Vielen Dank für Ihre Aufmerksamkeit!
SG,
Arwed Fränken