Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Per Batch txt auslesen, sortieren und einfache Berechung möglich?

Mitglied: nickofsix

nickofsix (Level 1) - Jetzt verbinden

24.03.2010, aktualisiert 11:16 Uhr, 2880 Aufrufe, 1 Kommentar

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.

01.
******************************************************************************* 
02.
Blindtext, Blindtext, Blindtext, Blindtext, Blindtext, 
03.
Blindtext,Blindtext,Blindtext,Blindtext,Blindtext,Blindtext, 
04.
Blindtext,Blindtext,Blindtext,Blindtext, 
05.
 
06.
 
07.
               Lfd-Nr. Aktenz. Name, Vorname               Geb.-Jahr Eins.   Brutto  
08.
 
09.
                  1   A 26323  Name, Vorname               1627      001     37,85 
10.
                  2   A 26401  Name, Vorname               1952      002     37,85 
11.
                  3   A 26713  Name, Vorname               1971      003     37,85 
12.
                  4   A 26719  Name, Vorname               1944      003     37,85 
13.
                  5   A 59394  Name, Vorname               1959      004     37,85 
14.
                  6   A 59396  Name, Vorname               1955      950     37,85 
15.
                  7   A 80004  Name, Vorname               1971      002     37,85 
16.
 
17.
 
18.
Blindtext, Blindtext, Blindtext, Blindtext, Blindtext, 
19.
Blindtext,Blindtext,Blindtext,Blindtext,Blindtext,Blindtext, 
20.
Blindtext,Blindtext,Blindtext,Blindtext, 
21.
 
22.
*******************************************************************************
So würde ich mir das ganze in der Ausgabe ungefähr vorstellen:

01.
******************************************************************************* 
02.
Blindtext, Blindtext, Blindtext, Blindtext, Blindtext, 
03.
Blindtext,Blindtext,Blindtext,Blindtext,Blindtext,Blindtext, 
04.
Blindtext,Blindtext,Blindtext,Blindtext, 
05.
 
06.
               Lfd-Nr. Aktenz. Name, Vorname               Geb.-Jahr Eins.   Brutto  
07.
 
08.
                  1   A 26323  Name, Vorname              1627       001     37,85 
09.
                                                                  Summe= €   37,85 
10.
 
11.
                  2   A 26401  Name, Vorname              1952       002     37,85 
12.
                  7   A 80004  Name, Vorname              1971       002     37,85 
13.
                                                                  Summe= €   75,70 
14.
 
15.
                  3   A 26713  Name, Vorname              1971       003     37,85 
16.
                  4   A 26719  Name, Vorname              1944       003     37,85 
17.
                  5   A 59394  Name, Vorname              1959       003     37,85 
18.
                                                                 Summe= €   113,55 
19.
 
20.
                  6   A 59396  Name, Vorname              1955       112     37,85 
21.
                                                                  Summe= €   37,85 
22.
 
23.
 
24.
Blindtext, Blindtext, Blindtext, Blindtext, Blindtext, 
25.
Blindtext,Blindtext,Blindtext,Blindtext,Blindtext,Blindtext, 
26.
Blindtext,Blindtext,Blindtext,Blindtext, 
27.
 
28.
*******************************************************************************
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
Mitglied: Biber
24.03.2010 um 18:56 Uhr
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:

  • 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:
01.
>findstr /c:"   A "  e:\schnipsel\nickofsix.txt 
02.
                  1   A 26323  Name, Vorname               1627      001     37,85 
03.
                  2   A 26401  Name, Vorname               1952      002     37,85 
04.
                  3   A 26713  Name, Vorname               1971      003     37,85 
05.
                  4   A 26719  Name, Vorname               1944      003     37,85 
06.
                  5   A 59394  Name, Vorname               1959      004     37,85 
07.
                  6   A 59396  Name, Vorname               1955      950     37,85 
08.
                  7   A 80004  Name, Vorname               1971      002     37,85 
09.
 
10.
(=18:36:57  D:\temp=) 
11.
>REM und auch nach Zeilenposition 70 in deinem Sinne richtig sortieren können. 
12.
>findstr /c:"   A "  e:\schnipsel\nickofsix.txt|sort /+70 
13.
                  1   A 26323  Name, Vorname               1627      001     37,85 
14.
                  2   A 26401  Name, Vorname               1952      002     37,85 
15.
                  7   A 80004  Name, Vorname               1971      002     37,85 
16.
                  3   A 26713  Name, Vorname               1971      003     37,85 
17.
                  4   A 26719  Name, Vorname               1944      003     37,85 
18.
                  5   A 59394  Name, Vorname               1959      004     37,85 
19.
                  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
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batch mit for txt auslesen?
gelöst Frage von Mohji32Batch & Shell4 Kommentare

Hallo, ich habe mir den "Grundkurs" zu for schleifen im Board angeschaut aber leider nicht das hin bekommen was ...

Batch & Shell
Mit Batch .txt auslesen und benutzen
gelöst Frage von GhostJumperHDBatch & Shell8 Kommentare

Ich habe folgendes Problem Ich möchte das W-Lan überlasten und möchte danach die .bat zur .exe umwandeln. Ich möchte ...

Batch & Shell

Mit Batch gesamtes txt auslesen mit Leerzeichen?

Frage von DrMarksmanBatch & Shell2 Kommentare

Guten Tag. Ich habe mal wieder eine Frage und zwar würde ich gerne einen kompletten .txt File mit einem ...

Batch & Shell

Falsche Umlaute beim auslesen einer .txt mit batch

gelöst Frage von pdiddoBatch & Shell2 Kommentare

Hi Leute, ich habe folgendes Problem: Ich möchte mit einer Batch Datei eine .txt Datei auslesen. Das ausgelesene wird ...

Neue Wissensbeiträge
Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 10 StundenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Sicherheit

Intel gibt neue Spectre V2-Microcode-Updates frei (20.02.2018)

Information von kgborn vor 11 StundenSicherheit

Intel hat zum 20. Februar 2018 weitere Microcode-Updates für OEMs freigegeben, um Systeme mit neueren Prozessoren gegen die Spectre ...

Microsoft
ARD-Doku - Das Microsoft Dilemma
Tipp von Knorkator vor 14 StundenMicrosoft3 Kommentare

Hallo zusammen, vor einigen Tagen lief in der ARD u.a. Reportage. Das Youtube Video dazu dürfte länger verfügbar sein. ...

Windows 10

Neue Sicherheitslücke in Windows 10 (Version 1709) durch Google öffentlich geworden

Information von kgborn vor 1 TagWindows 10

Vor ein paar Tagen haben Googles Sicherheitsforscher vom Projekt Zero eine Sicherheitslücke im Edge-Browser publiziert. Jetzt wurde eine weitere ...

Heiß diskutierte Inhalte
Windows Server
AD DS findet Domäne nicht, behebbar?
Frage von schapitzWindows Server40 Kommentare

Guten Tag, ich habe bei einem Kunden ein Problem mit den AD DS. Umgebung ist folgende: Windows Server 2016 ...

Router & Routing
LANCOM VPN CLIENT einrichten
Frage von Finchen961988Router & Routing27 Kommentare

Hallo, ich habe ein Problem und hoffe ihr könnt mir helfen, wir haben einen Kunden der hat einen Speedport ...

Router & Routing
ISC DHCP 2 Subnetze
gelöst Frage von janosch12Router & Routing19 Kommentare

Hallo, ich betreibe bei mir im Netzwerk einen ISC DHCP Server auf Debian, der DHCP verwaltet aktuell ein /24 ...

Switche und Hubs
Cisco SG350X-48 AdminIP in anderes VLAN
Frage von lcer00Switche und Hubs14 Kommentare

Hallo zusammen, ich habe ein Problem mir einem Cisco SG350X-48 bei der Erstinstallation wurde eine IP 192.168.0.254 (Default VLAN ...