Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

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

Frage Entwicklung Batch & Shell

Mitglied: motec

motec (Level 1) - Jetzt verbinden

05.04.2011, aktualisiert 18.10.2012, 4476 Aufrufe, 12 Kommentare

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!
Mitglied: bastla
05.04.2011 um 23:42 Uhr
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
Bitte warten ..
Mitglied: Biber
05.04.2011 um 23:49 Uhr
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
Bitte warten ..
Mitglied: 60730
05.04.2011 um 23:52 Uhr
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...
Bitte warten ..
Mitglied: motec
06.04.2011 um 11:42 Uhr
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*
Bitte warten ..
Mitglied: 60730
06.04.2011 um 12:19 Uhr
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ß
Bitte warten ..
Mitglied: bastla
06.04.2011 um 13:36 Uhr
@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 ...

Grüße
bastla
Bitte warten ..
Mitglied: motec
06.04.2011 um 22:20 Uhr
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
Bitte warten ..
Mitglied: motec
06.04.2011 um 22:27 Uhr
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
Bitte warten ..
Mitglied: 60730
06.04.2011 um 23:29 Uhr
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ß
Bitte warten ..
Mitglied: motec
07.04.2011 um 00:31 Uhr
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
Bitte warten ..
Mitglied: bastla
07.04.2011, aktualisiert 18.10.2012
@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 ):
for /f "tokens=11,23,25 delims=#" %%a in ('findstr "#Rechnung#" "100023.txt"') do echo %%a_%%b_%%c
So - jetzt wieder Du ...

Grüße
bastla
Bitte warten ..
Mitglied: 60730
07.04.2011, aktualisiert 18.10.2012
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.

* 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
):
for /f "tokens=11,23,25 delims=#" %%a in ('findstr "#Rechnung#"> "100023.txt"') do echo %%a_%%b_%%c
So - jetzt wieder Du ...
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
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst BATCH: Daten aus Textdatei auslesen und in neue Textdatei separieren (9)

Frage von Manuel1234 zum Thema Batch & Shell ...

HTML
gelöst Mit HTML Datei eine Textdatei auslesen (7)

Frage von Maffi zum Thema HTML ...

Batch & Shell
gelöst Mehrere PDF-Dateien per Batch zusammenfügen (1)

Frage von Grimmli zum Thema Batch & Shell ...

Multimedia
gelöst Zusammenfügen von 2 oder mehr PDF-Dokumenten zu einer PDF (4)

Frage von chiefteddy zum Thema Multimedia ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...