mgrotjans
Goto Top

Text in Textdatei suchen und folgende Zahl in neuer Textdatei speichern.

Hallo,
mir sind sämtliche Kassenberichte des Jahres verbrannt.

Ich habe die Bons alle als Tägliches Textfile auf meinem USB Stick.
Ich möchte gerne die Bons zusammenrechnen, habe aber keine Lust jeden einzelnen Artikel
in de Taschenrechner zu hämmern um an die Tagessumme zu kommen.

Das Textfile so aus:

Anfang Textfile "001_23.09.07b.jor"

Kunde: 37870
CAPPUCCINO SCHAUM 1,80
CAPPUCCINO SCHAUM 1,80
CAPPUCCINO SCHAUM 1,80

Zu zahlen EUR 5,40

19% Mwst, Ges.-Betrag: 5,40
*7% Mwst, Ges.-Betrag: 0,00

Anzahl der Artikel 3
23.09.07 001 10:30:32

Zu zahlen EUR 5,40

19% Mwst, Ges.-Betrag: 5,40
*7% Mwst, Ges.-Betrag: 0,00

Anzahl der Artikel 3
23.09.07 001 10:30:47
Kunde: 37871
3 EISKUGELN 1,50
PORTION SAHNE 0,50
PORTION SAHNE 0,50

Zu zahlen EUR 2,50

19% Mwst, Ges.-Betrag: 2,50
*7% Mwst, Ges.-Betrag: 0,00

Anzahl der Artikel 3
23.09.07 001 11:20:35
Kunde: 37872
2 EISKUGELN 1,00
2 EISKUGELN 1,00
PORTION SAHNE 0,50

Zu zahlen EUR 2,50

19% Mwst, Ges.-Betrag: 2,50
*7% Mwst, Ges.-Betrag: 0,00

Anzahl der Artikel 3
23.09.07 001 12:08:54
Kunde: 37873
CAPPUCCINO SCHAUM 1,80
CAPPUCCINO SCHAUM 1,80

Zu zahlen EUR 3,60

19% Mwst, Ges.-Betrag: 3,60
*7% Mwst, Ges.-Betrag: 0,00

Anzahl der Artikel 2
23.09.07 001 12:09:11
Kunde: 37874
KINDERSPAGHETTI 2,00
KINDERSPAGHETTI 2,00
2 EISKUGELN 1,00

Zu zahlen EUR 5,00

19% Mwst, Ges.-Betrag: 5,00
*7% Mwst, Ges.-Betrag: 0,00

Anzahl der Artikel 3
23.09.07 001 12:20:57
Kunde: 37875
4 EISKUGELN 2,00
AFTER EIGHT BECHER 4,20

Zu zahlen EUR 6,20

19% Mwst, Ges.-Betrag: 6,20
*7% Mwst, Ges.-Betrag: 0,00

Anzahl der Artikel 2
23.09.07 001 12:25:57

Ende Textfile"001_23.09.07b.jor"

Ich brauche eigentlich nur die Zahl hinter: "19% Mwst, Ges.-Betrag: "
von jedem Kunden in eine neue Datei, die ich in Excel zusammenrechnen lasse.

Die neue Datei hätte dann den Inhalt:

3,60
5,00
6,20
usw.......

(Also immer nur die Endbeträge eines jeden Kunden)

Als Suchkriterium würde ich "19% Mwst, Ges.-Betrag: " nehmen und
dann nur die Zahl dahinter in eine neue Textdatei speichern.

Am Ende habe ich eine Textdatei die ich in Excel auswerten kann.

Schön wäre es auch wenn die Batchdatei alle meine TagesBons öffnet und bearbeitet.

Die Dateinamen setzen sich ja aus dem Datum zusammen:

z.B. "001_23.09.07.jor" - "001_24.09.07.jor" - "001_25.09.07.jor" usw.

Tipps?

Content-Key: 69900

Url: https://administrator.de/contentid/69900

Printed on: April 20, 2024 at 00:04 o'clock

Member: bastla
bastla Oct 01, 2007 at 13:53:27 (UTC)
Goto Top
Hallo mgrotjans und willkommen im Forum!

Üble Sache, die Dir da passiert ist. face-sad

Zu Deinem Vorhaben vielleicht noch eine Ergänzung: Wenn sich schon das Datum aus dem Dateinamen rekonstruieren lässt, wäre es vielleicht sinnvoll, es auch jeweils zusammen mit dem Betrag zu speichern, also etwa so:
@echo off & setlocal
set "Quelle=C:\Kassenberichte"  
set "Liste=C:\Umsatzliste.txt"  

if exist "%Liste%" del "%Liste%"  
for /f "delims=" %%i in ('dir /b /od "%Quelle%\*.jor"') do call :ProcessFile "%Quelle%\%%i"  
goto :eof

:ProcessFile
for /f "tokens=2 delims=_" %%n in ('echo %~n1') do set "Dat=%%n"  
set "Dat=%Dat:~0,-1%"  
for /f "tokens=2 delims=:" %%b in ('findstr /c:"19%% Mwst, Ges.-Betrag: " %1') do (echo %Dat%;%%b)>>"%Liste%"  
In der obigen Batchdatei musst Du natürlich noch die Pfade für den Ordner mit den einzelnen Textdateien ("C:\Kassenberichte", oder wohin Du eben die Dateien vom Stick kopiert hast) und für die Zieldatei anpassen.

Grüße
bastla
Member: mgrotjans
mgrotjans Oct 02, 2007 at 07:07:03 (UTC)
Goto Top
Hallo,
wirklich Super von Dir.
Das hat gut Funktioniert.
Du hast mir enorm geholfen und wenn Du aus meiner Ecke bist,
kannst Du Dir einen großen Eisbecher abholen! face-wink

Leider gibt es in der Ausgabe einen Haken:

Schnipp---Ausgabe Datei----

23.09.0; 5,40
23.09.0; 5,40
23.09.0; 2,50
23.09.0; 2,50
23.09.0; 3,60
23.09.0; 5,00
23.09.0; 6,20
23.09.0; 13,00


Schnipp---Ausgabe Datei----

Bei dem Datum fehlt am ende die 7.
Das mit dem Semikolon ist gut, weil das in Excel Prima zu trennen ist.
Kann mann das Leerzeichen zwischen dem Semikolon und der Summe auch weglassen??

Danke nochmals für die Hilfe.

P.S. Warum ist im Suchstring das % zeichen 2 mal hinter der 19?
Member: bastla
bastla Oct 02, 2007 at 07:38:07 (UTC)
Goto Top
Hallo mgrotjans!

Bei dem Datum fehlt am ende die 7.
Ich war von Deinem ganz oben geposteten (Anfang Textfile "001_23.09.07b.jor") Dateinamen ausgegangen und wollte das überschüssige "b" eliminieren ...

Lösung: Streiche die Zeile
set "Dat=%Dat:~0,-1%"  
ersatzlos.

Kann mann das Leerzeichen zwischen dem Semikolon und der Summe auch weglassen??
Grundsätzlich: ja - allerdings sollte es beim Import in Excel nicht stören, weshalb ich mich nicht weiter darum gekümmert habe. Außerdem erschien mir ":" als Trennzeichen sicherer als die Leerstelle. Wenn Du es trotzdem versuchen willst, verwende folgende Zeile:
for /f "tokens=4" %%b in ('findstr /c:"19%% Mwst, Ges.-Betrag: " %1') do (echo %Dat%;%%b)>>"%Liste%"  

P.S. Warum ist im Suchstring das % zeichen 2 mal hinter der 19?
Analog zu den Laufvariablen einer "for"-Schleife, für die in Batch (nicht von der Kommandozeile) ebenfalls %% geschrieben werden muss ...

Grüße
bastla
Member: mgrotjans
mgrotjans Oct 02, 2007 at 08:49:50 (UTC)
Goto Top
Klasse,
damit hast Du mir wirklich geholfen.

Ich habe mich schon die ganzen Preise mit dem Taschenrechner eintippen sehen.
Pro Tag ca. 1 Stunde! ;-(

Jetzt wirds wohl besser klappen.

Noch einmal herzlichen Dank!