Forlaufende (Rechnungs)Nummern auf Vollständigkeit prüfen....
Hallo,
erstmal wünsche ich Euch ein frohes neues Jahr !
Ich bin auf der Suche nach einer Lösung zu folgendem Problem. Ich lese den Inhalt eines Verzeichnisses aus und schreibe den Inhalt in ein Textfile.
inhalt.txt
DE1_2011_0000_1002267.pdf
DE1_2011_0000_1002268.pdf
DE1_2011_0000_1002269.pdf
DE1_2011_0000_1002270.pdf
DE1_2011_0000_1002271.pdf
DE1_2011_0000_1002272.pdf
DE1_2011_0000_1002274.pdf
DE1_2011_0000_1002275.pdf
Nun müßte das Script den Inhalt der TXT lesen und prüfen ob die Rechnungen forlaufend sind, in dem o.g. Fall fehlt die DE1_2011_0000_1002273.pdf, das sollte das Script zeigen.
Hat jemand ein Idee ?
Danke !
Gruß
Marcus
erstmal wünsche ich Euch ein frohes neues Jahr !
Ich bin auf der Suche nach einer Lösung zu folgendem Problem. Ich lese den Inhalt eines Verzeichnisses aus und schreibe den Inhalt in ein Textfile.
inhalt.txt
DE1_2011_0000_1002267.pdf
DE1_2011_0000_1002268.pdf
DE1_2011_0000_1002269.pdf
DE1_2011_0000_1002270.pdf
DE1_2011_0000_1002271.pdf
DE1_2011_0000_1002272.pdf
DE1_2011_0000_1002274.pdf
DE1_2011_0000_1002275.pdf
Nun müßte das Script den Inhalt der TXT lesen und prüfen ob die Rechnungen forlaufend sind, in dem o.g. Fall fehlt die DE1_2011_0000_1002273.pdf, das sollte das Script zeigen.
Hat jemand ein Idee ?
Danke !
Gruß
Marcus
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 157965
Url: https://administrator.de/forum/forlaufende-rechnungsnummern-auf-vollstaendigkeit-pruefen-157965.html
Ausgedruckt am: 11.01.2025 um 04:01 Uhr
4 Kommentare
Neuester Kommentar
in welcher sprache? EINE Option wäre z.B.:
a) Aufbau deiner Nummer: $DeineAufgebauteNummer = "DE1_2011_0000_"+$i+".pdf" -> wobei $i z.B. bei 1000001 anfängt und hochzählt
b) jetzt wanderst du einfach durch:
while (!EOF) if $TextDerZeile==$DeineAufgebauteNummer?
ja -> alles ok!
nein -> hier fehlt ne Nummer
Danach noch $i +1 rechnen und $DeineAufgebauteNummer = "DE1_2011_0000_"+$i+".pdf" -> schon hast du den nächsten Dateinamen....
Die Frage is eben welche Sprache du nehmen möchtest...
a) Aufbau deiner Nummer: $DeineAufgebauteNummer = "DE1_2011_0000_"+$i+".pdf" -> wobei $i z.B. bei 1000001 anfängt und hochzählt
b) jetzt wanderst du einfach durch:
while (!EOF) if $TextDerZeile==$DeineAufgebauteNummer?
ja -> alles ok!
nein -> hier fehlt ne Nummer
Danach noch $i +1 rechnen und $DeineAufgebauteNummer = "DE1_2011_0000_"+$i+".pdf" -> schon hast du den nächsten Dateinamen....
Die Frage is eben welche Sprache du nehmen möchtest...
Hallo marcushb!
Dann (unter der Annahme, dass die Liste in "inhalt.txt" sortiert ist und Einträge entsprechend Deiner Vorlage enthält) etwa so (oberflächlich getestet):
Grüße
bastla
Dann (unter der Annahme, dass die Liste in "inhalt.txt" sortiert ist und Einträge entsprechend Deiner Vorlage enthält) etwa so (oberflächlich getestet):
Inh = "D:\Inhalt.txt"
Fehl = "D:\Fehlende.txt"
Set fso = CreateObject("Scripting.FileSystemObject")
Inhalt = Split(fso.OpenTextFile(Inh).ReadAll, vbCrLf)
Erste = Inhalt(0) 'erste Zeile --> niedrigste Nummer; Vorlage für weitere Zeilen
ErsteNr = Split(Split(Erste, "_")(3), ".")(0) 'Nummer isolieren
LfdNr = ErsteNr
For i = 1 To UBound(Inhalt)
If Trim(Inhalt(i)) <> "" Then 'Prüfung von Leerzeilen vermeiden
LfdNr = LfdNr + 1 'nächste Nummer
Naechste = Replace(Erste, ErsteNr, LfdNr) 'vollständige nächste Zeile
Do While StrComp(Inhalt(i), Naechste, vbTextCompare) <> 0 'Groß-/Kleinschreibung ignorieren
F = F & vbCrLf & Naechste 'Liste der Fehlenden um eine Zeile erweitern
LfdNr = LfdNr + 1 'Nr hochzählen, bis nächste Vorhande gefunden wird
Naechste = Replace(Erste, ErsteNr, LfdNr)
Loop
End If
Next
fso.CreateTextFile(Fehl).Write Mid(F, 3) 'Liste ohne führende Zeilenschaltung in Datei schreiben
bastla