motec
Goto Top

Textdatei auslesen, zusammenfügen und dazugehörige PDF zusammenfügen

Hallo zusammen, vielleicht kann mir hier jemand helfen.
Für jeden Tipp wäre ich dankbar, leider bin ich ein absoluter Anfänger daher habt bitte etwas Geduld mit mir.

Ich habe eine unterschiedliche Anzahl von Dateien(Rechnungen), bestehend jeweils aus einer PDF(mehrseitig) und einer gleichnamigen Textdatei.
Ich muss aus der Textdatei die Kundennummer auslesen(feste Position) und dann alle Textdateien und PDF Dateien
mit der gleichen Kundennummer zusammenfügen. So das ich pro Kundennummer eine Textdatei und eine PDF habe, Dateiname ist jeweils
die Kundennummer(feste Position in der Texdatei).

In einem 2 Step muss ich dann die Belege zusammenlegen deren Rechnungsbetrag 1000€ übersteigt und die ins Ausland oder Inland(
im Kopftext steht Ausland oder Inland) gehen. Die Dateinamen müssen hier Auslandsrechnung und Inlandsrechnung sein.

Dieser Lauf muss automatisiert ablaufen und wird dann täglich wiederholt.


Beispiel:
Verzeichnis mit 200 Text Dateien und 200 PDF's mit insgesamt 30 unterschiedlichen Kundennummern und 20 Rechnungen über 1000€ und dem
Aufdruck Ausland und 10 Rechnungen über 1000€ mit dem Aufdruck Inland.

Das Ergebniss müssten dann 30 PDF's und 30 gleichnamige Textdateien(Name = Kundennummer), 1 PDF inkl. Textdateien
mit dem Namen Auslandsrechnung sein und 1 PDF inkl. Textdatei mit dem Dateinamen Inlandsrechnung.


Ich hoffe Ihr könnt mir hier helfen oder mir ein paar Tipps geben, vorab vielen DANK!

Content-Key: 164032

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

Printed on: April 19, 2024 at 17:04 o'clock

Member: bastla
bastla Apr 05, 2011 at 21:42:23 (UTC)
Goto Top
Hallo motec!

Es wäre hilfreich, ein Beispiel der Textdatei (für das Auslesen von Kundennummer, In-/Ausland und Rechnungsbetrag) zu sehen ...

Grüße
bastla
Member: Biber
Biber Apr 05, 2011 at 21:49:55 (UTC)
Goto Top
Moin motec,

das "hilfreich" in bastlas Kommentar könnte auch als "unabdingbar" übersetzt werden.

Unabhängig davon, dass es sich sicherlich irgendwie zum Fliegen bringen lässt...
Lässt sich die Automatisierung nicht schon an einer früheren Stelle im Prozess sinnvoller integrieren?
Diese "Textdateien" sind doch vermutlich auch nur Abfallprodukte aus der vorangegangenen Verarbeitung (vermutlich aus irgendeiner Datenbank-Appz), oder?

Können wir nicht dort schon ansetzen?

Grüße
Biber
Mitglied: 60730
60730 Apr 05, 2011 at 21:52:10 (UTC)
Goto Top
moin,

ich geb dir etwas Nachhilfe...

  • pdf2text von Google oder pdftk helfen dir die pdfs auszulesen
  • For schleife hilft dir u.a herauszufinden, ob vor der ganzen Aktion 22 .txt Dateien in dem Ordner sind und auch 22 pdf Dateien - denn stimmt das nicht überein - würde ich den ganzen weiteren Salmon gleich abbrechen.

for /f %a in ('dir *.pdf^|find "Datei(en)"') do echo %a
for /f %b in ('dir *.txt^|find "Datei(en)"') do echo %b


mit z.B more oder auch einer Schleife kannst du gezielt eine Zeile ausgeben

mit find oder findstr Inhalte durchsuchen z.B um deine Kundennummer oder Rechnungsbetrag zu finden,

Mach was draus - wir helfen dir.

Gruß

edit - jetzt wart ihr beiden aber schnellla...
Member: motec
motec Apr 06, 2011 at 09:42:52 (UTC)
Goto Top
Hallo,

das ist kein Problem, hier ein Ausschnitt(Kopfdaten mit allen Infos) aus einer der Textdateien(Aufbau ist immer gleich),
Kundennummer: 11245411
Rechnungsbetrag: 945,78
Inland

Position der Informationen ist natürlich nicht gleich, je nach Länge des Kundennamens(hier Setra) kann es stark abweichen.

Beispiel(Dateinamen lauten 100023.txt und 100023.pdf):

#100023#,#Rechnung#,#522007#,#93214#,#Setra#,#11245411#,#824522#,#21.01.2010#,#
Idal#,#INA#,#5541#,#945,78#,#Inland#


*Rechnungstext*
Mitglied: 60730
60730 Apr 06, 2011 at 10:19:03 (UTC)
Goto Top
moin,

wie weit bist du denn mit den von mir genannten Ansätzen gekommen?
Für jeden Tipp wäre ich dankbar, leider bin ich ein absoluter Anfänger daher habt bitte etwas Geduld mit mir.

Die Tipps hab ich dir ja gegeben und Geduld hab ich mehr, als Lust darauf - das das wieder eine B Lösung ohne eigeninitiative des Fragestellers wird.

gruß
Member: bastla
bastla Apr 06, 2011 at 11:36:13 (UTC)
Goto Top
@t-mo
das das wieder eine B Lösung ... wird.
Das möchte ich auch nicht - denn eigentlich streben wir doch A-Lösungen, wenn nicht sogar 1A, an ...

... ansonsten können wir nur hoffen, dass Biber sich noch ein wenig beherrschen kann ... face-wink

Grüße
bastla
Member: motec
motec Apr 06, 2011 at 20:20:49 (UTC)
Goto Top
Hi Biber,

leider nicht, an die Quelle komm ich nicht ran, habe ich schon erfragt. Die Daten können nur einmal erstellt werden, dieses Format ist vorgegeben.
Danach werden sie weiterverarbeitet und stehen nicht mehr zur Verfügung. Das einzige was ich tun kann ist sie abzugreifen und erst einmal weg zu kopieren
und dann zu bearbeiten.

Ich werde mich ein ein wenig mit der Batch Programmierung beschäftigen müssen, so ganz ohne ist es nicht(zumindest für mich).

Meine einzigen Erfahrungen mit batch Dateien sind kleine Abläufe um Daten zu ersetzen oder Ordner zu kopieren/verschieben und umzubennen oder zu packen,
also nichts gewaltiges.

gruß

motec
Member: motec
motec Apr 06, 2011 at 20:27:40 (UTC)
Goto Top
Hi TimoBeil,

kann leider nur Abends dran, ist eine rein private Herausforderung. Eine offizielle Anfrage an einen Entwickler wurde heute
mit ganzen 1200€ für den Aufwand beantwortet. Wäre dann aber mit entsprechender Konfigurationsmaske usw.. Finde ich
schon Hammer.

Deine Tipps sind hilfreich wenn ich sie verstehen würde, ich lerne gerade das krabbeln und muss mich komplett da reinarbeiten.
Das wird wahrscheinlich dauern, wenn ich einen Ansatz oder ein ähnliches Beispiel hätte traue ich mir das zu, ein kompletter
Aufbau wird einiges an Zeit kosten.

Gruß und Danke

motec
Mitglied: 60730
60730 Apr 06, 2011 at 21:29:28 (UTC)
Goto Top
moin,

Fahrlässigerweise hat Du Bibers Counter erwischt....

Zitat von @motec:
Hi Biber,
umzubennen oder zu packen,
also nichts gewaltiges.

  • die beiden einzeiler kannst du ja problemlos laufen lassen und sehen, ob bei einem Ordner - der x pdfs und x txt Dateien hat zufälligerweise auch x ausgegeben wird.

1200€ für den ganzen Aufwand...
und ich hoffe, wir machen es nicht umsonst - sondern maximal gratis
(wobei das mal eben nicht doch schnell zusammenbratzeln deutlich mehr von uns verlangt, als dich Schritt für Schritt dahin zuleiten.) Nur bringen wird es dir nix. (gibt da grade ein tagesaktuelles Paradebeispiel)

Aber ehrlich:
  • ist es deine Kohle - die 1punkt2k Mücken?
  • gehts auf deine Kappe, wenn du das mit unserer oder ohne unsere Hilfe versemmelst?
  • Firmenrechnungen wären ganz ehrlich für mich der letzte Grund mich erstmalig mit Batch zu beschäftigen.

kann leider nur Abends dran, ist eine rein private Herausforderung
Naja und wir machen es ja auch auch irgendwann aus privatvergnügen....

Gruß
Member: motec
motec Apr 06, 2011 at 22:31:11 (UTC)
Goto Top
Hallo,

hast schon Recht, ist nicht meine Kohle und sollte mir auch egal sein, eigentlich ist es das auch. Da es sich aber um eine Anforderung
von einer Abteilung handelt und ich Depp vorher meine Klappe zu weit aufgerissen habe hänge ich da leider drin.
Hatte nur mit halbem Ohr zugehört und dann gemeint, kein Problem, dürfte eine Kleinigkeit sein, und schon war es geschehen.
Die Hosen habe ich schon runter gelassen, will es aber nicht einfach hinwerfen sondern versuche das irgendwie hinzubiegen. Zeitlich
ist da kein Druck hinter, die Daten sichere ich weg und auf ein paar Wochen kommt es nicht an.

Das mit der Schritt für Schritt Anleitung finde ich ein gute Sache, nur so lernt man. Immerhin muss ich bei Anpassungen auch in der Lage sein
selbst Hand anzulegen.


Gruß

motec
Member: bastla
bastla Apr 06, 2011, updated at Oct 18, 2012 at 16:46:23 (UTC)
Goto Top
@t-mo
Wenn ich das inzwischen richtig verstanden habe
  • hast Du recht, dass vorweg die Vollständigkeit der Dateien geprüft werden sollte - dann aber gleich genau, indem jeweils in einer Schleife über alle ".txt"-Dateien die zugehörige ".pdf" gecheckt wird und analog per zweiter Schleife das ganze umgekehrt
  • müssen die PDF-Dateien nicht ausgelesen, sondern nur zusammengefügt werden (per "pdftk" - ist etwas knifflig, weil, als ich's das letzte Mal verwendet habe, ich keine Möglichkeit gefunden habe, an bestehende Dateien anzufügen, sodass immer nur aus zwei oder mehr Dateien eine neue erzeugt werden konnte; wenn zuerst alle Dateinamen gesucht und in einer Variablen zusammengefasst werden, geht es um das Mengengerüst: wieviele Dateien können gleichzeitig als Parameter übergeben werden? Alternativ kann mit 2 abwechselnden Dateien auch schrittweise zusammengesetzt werden - diesen Ansatz habe ich in einem anderen Thread schon mal realisiert)
  • müssen keine einzelnen Zeilen (anhand ihrer Zeilennummer) "gezielt ausgegeben", sondern nur die relevanten Daten herausgefiltert werden - ich spendiere motec dazu mal eine Zeile als Grundlage (hoffentlich habe ich mich nicht verzählt face-wink):
for /f "tokens=11,23,25 delims=#" %%a in ('findstr "#Rechnung#" "100023.txt"') do echo %%a_%%b_%%c
So - jetzt wieder Du ... face-wink

Grüße
bastla
Mitglied: 60730
60730 Apr 06, 2011, updated at Oct 18, 2012 at 16:46:23 (UTC)
Goto Top
salü,
Zitat von @bastla:
@t-mo
Wenn ich das inzwischen richtig verstanden habe
  • hast Du recht, dass vorweg die Vollständigkeit der Dateien geprüft werden sollte - dann aber gleich genau, indem
jeweils in einer Schleife über alle ".txt"-Dateien die zugehörige ".pdf" gecheckt wird und analog
per zweiter Schleife das ganze umgekehrt
yupp - das ist ja das, was ich "eigentlich" erreichen will - "wir" werfen Schritt für Schritt einzelne Schritte in den Raum - diskutieren drüber und am Ende gewinnt nicht nur der TO sondern das / der beste Batch. face-wink

* müssen die PDF-Dateien nicht ausgelesen, sondern nur zusammengefügt werden
  • yupp - denn offenbar stehen die Infos ja in der txt Datei...
(per "pdftk" - ist etwas knifflig, weil, als ich's das letzte Mal verwendet habe, ich keine Möglichkeit gefunden habe, an bestehende Dateien
anzufügen, sodass immer nur aus zwei oder mehr Dateien eine neue erzeugt werden konnte.
  • yupp kenn ich auch nur so - macht aber nix
wenn zuerst alle Dateinamen gesucht und in einer Variablen zusammengefasst werden, geht es um das Mengengerüst: wieviele Dateien können gleichzeitig als
Parameter übergeben werden?
  • meine Idee - wäre es (so nutze ich das PDFToolkit) ich werfe alles (richtig benannt) in einen Ordner und dann mit pdftk xyz*.pdf cat output blabub.pdf
(ok ich nutze aber auch noch andere "Sicherheiten" z.B ist die PDF überhaupt vom Datum x - dump_data|find "InfoValue)

Alternativ kann mit 2 abwechselnden Dateien auch schrittweise zusammengesetzt werden - diesen
Ansatz habe ich in einem anderen Thread schon mal realisiert)
  • müssen keine einzelnen Zeilen (anhand ihrer Zeilennummer) "gezielt ausgegeben", sondern nur die relevanten Daten
herausgefiltert werden - ich spendiere motec dazu mal eine Zeile als Grundlage (hoffentlich habe ich mich nicht verzählt
face-wink):
for /f "tokens=11,23,25 delims=#" %%a in ('findstr "#Rechnung#"> "100023.txt"') do echo %%a_%%b_%%c
So - jetzt wieder Du ... face-wink
Nein - den Ball werfe ich zurück an Motec - was ist der Unterschied zwischen deiner Zeile und einer von "meinen"
kleiner Tipp % zählen - bätch will doppelte prozente, cmd einfache
Und wenn er das Tut für die Schleifchen gefunden hat, hat er bestimmt auch eine Idee, wie man die 100023.txt als Variablen Punkt nutzen kann.

Grüße
bastla

Retour