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, 3137 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
Batch, CMD - Prüfen ob ein Dienst existiert, nicht läuft (4)

Frage von RycoDePsyco zum Thema Batch & Shell ...

Batch & Shell
Excel Prüfen

Frage von michi-ffm zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell Anmeldung auf Servern prüfen (3)

Frage von DukeofNet zum Thema Batch & Shell ...

Neue Wissensbeiträge
RedHat, CentOS, Fedora

Fedora, RedHat, Centos: DNS-Search Domain setzen

(10)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...

Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Router & Routing

PfSense auf Supermicro Intel Xeon D-15x8 SoC Bare Bone

Tipp von Dobby zum Thema Router & Routing ...

Heiß diskutierte Inhalte
Windows 10
Windows für Privatanwender "nicht mehr handhabbar" (26)

Frage von FA-jka zum Thema Windows 10 ...

LAN, WAN, Wireless
Brauche Hilfe: Mit (schnellem) WLAN Strecke überbrücken (23)

Frage von pierrehansen zum Thema LAN, WAN, Wireless ...

Basic
Programmierung von Windows Programmen (10)

Frage von Ghost108 zum Thema Basic ...