Hallo zusammen
ich habe das Problem, dass ich meine "*.abs" Bewehrungs-Ausgabedateien jeweils nach bearbeiten muss.
Von Seite Softwarelieferant werde ich grad etwas im Stich gelassen. Der Aufwand für die Programmierung lohne sich nicht wurde mir gesagt. Ich bin scheinbar ein Einzelfall mit meiner Ausgabedateieproblematik, weil ich als Einzelkämpfer an nicht "null acht fünfzehn" Dingen arbeite.
Bei einfachen Projekten gibt es pro Datei nur eine Zeile pro @pxxx@-Wert und nicht wie bei mir mehrere Zeilen wobei sich diese sich durch unterschiedliche @nxx@-Werte unterscheiden und natürlich der @Cxx@ Prüfsumme pro Zeile am Schluss.
Hier ein Ausschnitt aus einer meiner "*.abs"-Dateien:
BF2D@Hj2019-67@r203 bis 221, 268, 269@i@p124@l3910@n9@e2.412@d10@gIV S@s60@v@Gl3910@w0@C84@
BF2D@Hj2019-67@r203 bis 221, 268, 269@i@p123@l4060@n16@e4.913@d14@gIV S@s84@v@Gl4060@w0@C91@
BF2D@Hj2019-67@r203 bis 221, 268, 269@i@p130@l3910@n2@e3.472@d12@gIV S@s72@v@Gl3910@w0@C82@
BF2D@Hj2019-67@r203 bis 221, 268, 269@i@p128@l1238@n30@e0.489@d8@gIV S@s30@v@Gl580@w90@l80@w90@l580@w0@C88@
BF2D@Hj2019-67@r203 bis 221, 268, 269@i@p129@l339@n30@e0.134@d8@gIV S@s30@v@Gl100@w90@l140@w90@l100@w0@C94@
BF2D@Hj2019-67@r203 bis 221, 268, 269@i@p126@l1879@n30@e0.742@d8@gIV S@s30@v@Gl150@w90@l180@w90@l1100@w90@l100@w90@l350@w0@C71@
BF2D@Hj2019-67@r203 bis 221, 268, 269@i@p127@l1719@n30@e0.679@d8@gIV S@s30@v@Gl150@w90@l180@w90@l1080@w90@l160@w90@l150@w0@C89@
BF2D@Hj2019-67@r203 bis 221, 268, 269@i@p125@l362@n26@e0.143@d8@gIV S@s30@v@Gl100@w90@l180@w180@l80@w0@C86@
BF2D@Hj2019-67@r203 bis 221, 268, 269@i@p124@l3910@n6@e2.412@d10@gIV S@s60@v@Gl3910@w0@C87@
BF2D@Hj2019-67@r203 bis 221, 268, 269@i@p121@l2260@n30@e0.893@d8@gIV S@s30@v@Gl350@w90@l100@w90@l1360@w90@l100@w90@l350@w0@C82@
BF2D@Hj2019-67@r203 bis 221, 268, 269@i@p122@l1740@n30@e0.687@d8@gIV S@s30@v@Gl150@w90@l180@w90@l1080@w90@l180@w90@l150@w0@C67@
BF2D@Hj2019-67@r203 bis 221, 268, 269@i@p123@l4060@n16@e4.913@d14@gIV S@s84@v@Gl4060@w0@C91@
BF2D@Hj2019-67@r203 bis 221, 268, 269@i@p125@l362@n26@e0.143@d8@gIV S@s30@v@Gl100@w90@l180@w180@l80@w0@C86@
BF2D@Hj2019-67@r203 bis 221, 268, 269@i@p124@l3910@n12@e2.412@d10@gIV S@s60@v@Gl3910@w0@C74@
BF2D@Hj2019-67@r203 bis 221, 268, 269@i@p121@l2260@n60@e0.893@d8@gIV S@s30@v@Gl350@w90@l100@w90@l1360@w90@l100@w90@l350@w0@C79@
Ich habe bis anhin die Datei manuell im notepad++ geöffnet.
Mittels alles markieren, kopieren, ein ein vorbereitetes Excel Tabellenblatt in Spalte "D" ab Zeile "2" eingefügt.
Dort wird der Wert @pxxx@ dann automatisch in einer separaten Spalte "C" ausgewertet mit der Formel "=TEIL(D2;SUCHEN("@p";D2;1)+1;SUCHEN("@";D2;SUCHEN("@p";D2;1)+1)-SUCHEN("@p";D2;1)-1)"
Alles ist gesperrt und der Schutz eingeschaltet ausser "D2" bis "D400", wo die Werte aus dem notepad++ eingefügt werden können.
Anschliessend habe ich eine Schaltfläche erstellt, dort ein Makro hinterlegt, welches den Schutz aufhebt, die letzte genutzte Zeile ermittelt, alles nach den Werten in Spalte C aufsteigend sortiert und den Schutz wieder aktiviert.
Nun muss ich die neu sortierten Werte der Spalte"D" markieren, kopieren, im notepad++ alle bisherigen Werte ersetzten und die Datei speichern.
Dies ist meine momentane Minimallösung.
Erweitern würde ich dies als erstes einmal gerne damit:
Ich öffne nur meine Excel-Datei mit dem Makro und der Schaltfläche auf dem Tabellenblatt.
Dort klicke ich die Schaltfläche, im öffnen Dialog wähle ich die gewünschte "*.abs" Datei aus und dann funktioniert das Einlesen ins Excel Tabellenblatt, das Sortieren und wieder ausgeben/abspeichern unter dem selben Namen automatisch ohne Umweg über notepad++.
Als nächsten Schritt müsste ich das dann erweitern:
Alle Zeilen mit dem selben @pxxx@-Wert möchte ich zu einer Zeile zusammenzufassen, indem ich die @nxx@ Werte zusammenzähle. der Rest bleibt dabei identisch ausser der Cheksummeblock @Cxx@ zu hinterst. den muss ich dann entsprechend inkl. der neuen Summe beim @nxx@ Block in der Zeile neu errechnen und anfügen. Die nun hinfälligen Zeilen werden gelöscht.
Dies sollte natürlich über die ganze Datei so geschehen.
Zum Schluss soll dann die so geschrumpfte Zeilenzahl wieder in die ursprüngliche "*.abs" Datei ausgegeben und die alten Werte ersetzt werden.
Ich habe zwar schon einiges mit VBA in Excel gemacht, aber Daten aus einer Datei auslesen und wieder abspeichern gehörte nicht dazu. Und das Berechnen der Prüfsumme ist mir auch noch ein Rätsel.
Ich habe folgendes mittlerweile durch Recherche herausgefunden, wie das genau berechnet werden soll.
Nur sehe ich da noch nicht genau durch, um das in VBA zu übersetzen.
Wäre super, wenn mir hier jemand unter die Arme greifen könnte.
Besten Dank bereits mal.