Per Batch txt auslesen, sortieren und einfache Berechung möglich?
Hallo liebes Forum,
dies ist mein erster Beitrag und ich begrüsse alle hier recht herzlich! Ich habe mir hier schon oft super Hilfestellungen holen können, aber für mein jetziges Problem finde ich einfach keine Lösung. Da hier wirklich fähige Leute sind, hoffe ich auf euch! Ich bin wirklich kein Progammierkünstler und nutze batch für diverse Kleinigkeiten sehr gern, aber das Folgende übersteigt mein Wissen doch sehr. Also...
Ich würde gern aus einer txt-Datei (Quartalsrechnung) bestimmte Zeilen auslesen, innerhalb der Zeilen steht eine Nummer (3-stellig), welche für einen Einsender steht. Nach dieser Nummer soll "sortiert" ausgelesen und anschliessend für jeden Einsender eine Summe ausgerechnet werden. Hier der Auszug aus der TXT mit den relevanten Angaben, die Länge variiert und davor/dahinter steht "unrelevanter" Text.
So würde ich mir das ganze in der Ausgabe ungefähr vorstellen:
Ich hoffe dies ist einigermassen verständlich?! Meint ihr das wäre machbar? Es könnte auch eine Ausgabe in eine Exceldatei erfolgen, aber wie?
Ich bedanke mich im vorraus für die Hilfe, wenn noch Infos fehlen, bitte bescheid geben!
Gruß
No6
dies ist mein erster Beitrag und ich begrüsse alle hier recht herzlich! Ich habe mir hier schon oft super Hilfestellungen holen können, aber für mein jetziges Problem finde ich einfach keine Lösung. Da hier wirklich fähige Leute sind, hoffe ich auf euch! Ich bin wirklich kein Progammierkünstler und nutze batch für diverse Kleinigkeiten sehr gern, aber das Folgende übersteigt mein Wissen doch sehr. Also...
Ich würde gern aus einer txt-Datei (Quartalsrechnung) bestimmte Zeilen auslesen, innerhalb der Zeilen steht eine Nummer (3-stellig), welche für einen Einsender steht. Nach dieser Nummer soll "sortiert" ausgelesen und anschliessend für jeden Einsender eine Summe ausgerechnet werden. Hier der Auszug aus der TXT mit den relevanten Angaben, die Länge variiert und davor/dahinter steht "unrelevanter" Text.
*******************************************************************************
Blindtext, Blindtext, Blindtext, Blindtext, Blindtext,
Blindtext,Blindtext,Blindtext,Blindtext,Blindtext,Blindtext,
Blindtext,Blindtext,Blindtext,Blindtext,
Lfd-Nr. Aktenz. Name, Vorname Geb.-Jahr Eins. Brutto
1 A 26323 Name, Vorname 1627 001 37,85
2 A 26401 Name, Vorname 1952 002 37,85
3 A 26713 Name, Vorname 1971 003 37,85
4 A 26719 Name, Vorname 1944 003 37,85
5 A 59394 Name, Vorname 1959 004 37,85
6 A 59396 Name, Vorname 1955 950 37,85
7 A 80004 Name, Vorname 1971 002 37,85
Blindtext, Blindtext, Blindtext, Blindtext, Blindtext,
Blindtext,Blindtext,Blindtext,Blindtext,Blindtext,Blindtext,
Blindtext,Blindtext,Blindtext,Blindtext,
*******************************************************************************
So würde ich mir das ganze in der Ausgabe ungefähr vorstellen:
*******************************************************************************
Blindtext, Blindtext, Blindtext, Blindtext, Blindtext,
Blindtext,Blindtext,Blindtext,Blindtext,Blindtext,Blindtext,
Blindtext,Blindtext,Blindtext,Blindtext,
Lfd-Nr. Aktenz. Name, Vorname Geb.-Jahr Eins. Brutto
1 A 26323 Name, Vorname 1627 001 37,85
Summe= € 37,85
2 A 26401 Name, Vorname 1952 002 37,85
7 A 80004 Name, Vorname 1971 002 37,85
Summe= € 75,70
3 A 26713 Name, Vorname 1971 003 37,85
4 A 26719 Name, Vorname 1944 003 37,85
5 A 59394 Name, Vorname 1959 003 37,85
Summe= € 113,55
6 A 59396 Name, Vorname 1955 112 37,85
Summe= € 37,85
Blindtext, Blindtext, Blindtext, Blindtext, Blindtext,
Blindtext,Blindtext,Blindtext,Blindtext,Blindtext,Blindtext,
Blindtext,Blindtext,Blindtext,Blindtext,
*******************************************************************************
Ich hoffe dies ist einigermassen verständlich?! Meint ihr das wäre machbar? Es könnte auch eine Ausgabe in eine Exceldatei erfolgen, aber wie?
Ich bedanke mich im vorraus für die Hilfe, wenn noch Infos fehlen, bitte bescheid geben!
Gruß
No6
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 139027
Url: https://administrator.de/forum/per-batch-txt-auslesen-sortieren-und-einfache-berechung-moeglich-139027.html
Ausgedruckt am: 18.05.2025 um 04:05 Uhr
1 Kommentar
Moin nickofsix,
du hast die Anforderung sehr schön erklärt und verständlich ist es schon.
Allerdings hoffe ich, dass die Frage wirklich "ergebnisoffen" gestellt ist, dann aus meiner Sicht wäre die Antwort ein klares "Nein - ist weder sinnvoll noch zuverlässig mit Batch zu lösen".
Ich kann es aber auch herleiten (hoffe ich).
Wenn ich deinen Besipieltext mal bei mir lokal abspeicher als "e:\schnipsel\nickofsix.txt" und mal vorsichtig anteste, was denn möglicherweise die für einen automatisierten Ablauf "feststehenden" Grundstrrukturen des Dokuments sein müssten, dann kmme ich zu dem ernüchternen Ergebnis:
Damit würde ich diese Zeilen "erkennen" können:
So weit, so vertretbar.
Jetzt die Haken und Ösen.
---> an dieser Stelle spätestens würde ich abwinken und dagen: Hey, lass uns erstmal die Alternativen prüfen.
Und da wäre mein Ansatz:
Wer schreibt denn bisher diesen Text?
Das sieht doch auch nach irgendeinem stumpf vor sich hin schreibenden Programm aus, nicht nach einem stumpf vor sich hin schreibenden Oberverwaltungsrat.
Kann man/frau nicht an dieser Stelle eingreifen?
Erzähl doch noch mal ein, zwei Sätze zu dem Kontext, zu dem Gesamtprozess, der sich dahinter verbirgt.
Grüße
Biber
du hast die Anforderung sehr schön erklärt und verständlich ist es schon.
Allerdings hoffe ich, dass die Frage wirklich "ergebnisoffen" gestellt ist, dann aus meiner Sicht wäre die Antwort ein klares "Nein - ist weder sinnvoll noch zuverlässig mit Batch zu lösen".
Ich kann es aber auch herleiten (hoffe ich).
Wenn ich deinen Besipieltext mal bei mir lokal abspeicher als "e:\schnipsel\nickofsix.txt" und mal vorsichtig anteste, was denn möglicherweise die für einen automatisierten Ablauf "feststehenden" Grundstrrukturen des Dokuments sein müssten, dann kmme ich zu dem ernüchternen Ergebnis:
- ich muss ja, egal wie ich die Kuh aufzäume, um sie vom Eis zu bekommen, wenigstens zeilenweise unterscheiden können zwischen Prosa-Zeilen ("Blindtext") und Nutzdatenzeilen.
- einziges sehr, sehr, sehr wackeliges Prüfkriterium dafür wäre die Unterstellung: Alle Nutzdaten-Zeilen enthalten den Teilstring " A " (drei Leerzeichen+"A"+Leerzeichen)... also die Darstellung der Aktenzeichen-Spalte
Damit würde ich diese Zeilen "erkennen" können:
>findstr /c:" A " e:\schnipsel\nickofsix.txt
1 A 26323 Name, Vorname 1627 001 37,85
2 A 26401 Name, Vorname 1952 002 37,85
3 A 26713 Name, Vorname 1971 003 37,85
4 A 26719 Name, Vorname 1944 003 37,85
5 A 59394 Name, Vorname 1959 004 37,85
6 A 59396 Name, Vorname 1955 950 37,85
7 A 80004 Name, Vorname 1971 002 37,85
(=18:36:57 D:\temp=)
>REM und auch nach Zeilenposition 70 in deinem Sinne richtig sortieren können.
>findstr /c:" A " e:\schnipsel\nickofsix.txt|sort /+70
1 A 26323 Name, Vorname 1627 001 37,85
2 A 26401 Name, Vorname 1952 002 37,85
7 A 80004 Name, Vorname 1971 002 37,85
3 A 26713 Name, Vorname 1971 003 37,85
4 A 26719 Name, Vorname 1944 003 37,85
5 A 59394 Name, Vorname 1959 004 37,85
6 A 59396 Name, Vorname 1955 950 37,85
So weit, so vertretbar.
Jetzt die Haken und Ösen.
- Das Kriterium ist zu schwach - sogar ich mit meiner ohnehin unterentwickelten und in der Fastenzeit fast gänzlich verdrängten Phantasie kann mir locker 57000 Fälle vorstellen, in denen auch mal ein Teilstring " A " in einer der oberen oder unteren Blindtext-Zeilen stehen kann.
- ich kann die "Spalten" in diesen Zeilen eigentlich nur durch Abzählen (PositionVon...PositionBis) ermitteln... Leerzeichen als Trenner sind hier nicht brauchbar (im Az. ist schon eines, bei Name/Vorname können 0-5 auftauchen...)
- WENN ich dann sagen würde "Okay, von Pos. 74 der Zeile beginnend lese ich den einzelnen Euro-Betrag (im Beispiel " 37,85" und summiere den, solange in Substring Zeile(70, 3) jeweils der gleiche Gruppenwechselbegriff steht ("002", "003"...."950")----------> DANN muss ich diesen Euro,Cent-Wert erst wieder eine ganze Zahl umformatieren, da Batch nur mit Ganzzahlen rechnen kann... danach wieder eine Zahl mit Nachkommastellen daraus machen...
---> an dieser Stelle spätestens würde ich abwinken und dagen: Hey, lass uns erstmal die Alternativen prüfen.
Und da wäre mein Ansatz:
Wer schreibt denn bisher diesen Text?
Das sieht doch auch nach irgendeinem stumpf vor sich hin schreibenden Programm aus, nicht nach einem stumpf vor sich hin schreibenden Oberverwaltungsrat.
Kann man/frau nicht an dieser Stelle eingreifen?
Erzähl doch noch mal ein, zwei Sätze zu dem Kontext, zu dem Gesamtprozess, der sich dahinter verbirgt.
Grüße
Biber