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
GELÖST

Forlaufende (Rechnungs)Nummern auf Vollständigkeit prüfen....

Frage Entwicklung

Mitglied: marcushb

marcushb (Level 1) - Jetzt verbinden

04.01.2011 um 11:17 Uhr, 3136 Aufrufe, 4 Kommentare

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
Mitglied: maretz
04.01.2011 um 11:30 Uhr
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...
Bitte warten ..
Mitglied: marcushb
04.01.2011 um 11:45 Uhr
Hi,

danke für den ersten Ansatz, ich möchte das gerne als VB Script lösen !

Danke !

Gruß
Bitte warten ..
Mitglied: bastla
04.01.2011 um 12:14 Uhr
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):
01.
Inh = "D:\Inhalt.txt" 
02.
Fehl = "D:\Fehlende.txt" 
03.
 
04.
Set fso = CreateObject("Scripting.FileSystemObject") 
05.
Inhalt = Split(fso.OpenTextFile(Inh).ReadAll, vbCrLf) 
06.
Erste = Inhalt(0) 'erste Zeile --> niedrigste Nummer; Vorlage für weitere Zeilen 
07.
ErsteNr = Split(Split(Erste, "_")(3), ".")(0) 'Nummer isolieren 
08.
LfdNr = ErsteNr 
09.
 
10.
For i = 1 To UBound(Inhalt) 
11.
    If Trim(Inhalt(i)) <> "" Then 'Prüfung von Leerzeilen vermeiden 
12.
        LfdNr = LfdNr + 1 'nächste Nummer 
13.
        Naechste = Replace(Erste, ErsteNr, LfdNr) 'vollständige nächste Zeile 
14.
        Do While StrComp(Inhalt(i), Naechste, vbTextCompare) <> 0 'Groß-/Kleinschreibung ignorieren 
15.
            F = F & vbCrLf & Naechste 'Liste der Fehlenden um eine Zeile erweitern 
16.
            LfdNr = LfdNr + 1 'Nr hochzählen, bis nächste Vorhande gefunden wird 
17.
            Naechste = Replace(Erste, ErsteNr, LfdNr) 
18.
        Loop 
19.
    End If 
20.
Next 
21.
fso.CreateTextFile(Fehl).Write Mid(F, 3) 'Liste ohne führende Zeilenschaltung in Datei schreiben
Grüße
bastla
Bitte warten ..
Mitglied: marcushb
04.01.2011 um 12:34 Uhr
Hey Bastia,

wunderbar ;) vielen Dank für die schnelle Lösung !

Gruß
Marcus
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Powershell Anmeldung auf Servern prüfen (3)

Frage von DukeofNet zum Thema Batch & Shell ...

VB for Applications
VBA Grenzwerte in String prüfen Regex ??? Excel2010 (3)

Frage von Chillministrator zum Thema VB for Applications ...

Hosting & Housing
Wie Website auf Seriösität prüfen? (4)

Frage von imebro zum Thema Hosting & Housing ...

Neue Wissensbeiträge
Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(8)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(6)

Anleitung von BassFishFox zum Thema Windows 10 ...

Heiß diskutierte Inhalte