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, 3143 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
Windows Server
Printserver abschalten - Verbindungen prüfen (4)

Frage von uridium69 zum Thema Windows Server ...

Datenbanken
Informix SE Tabelle alle Felder auf NULL prüfen (4)

Frage von RalfHackmann zum Thema Datenbanken ...

Batch & Shell
PowerShell-Script zum Prüfen ob Datei(en) existieren (2)

Frage von Bonsai0815 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Heiß diskutierte Inhalte
Festplatten, SSD, Raid
PC stellt nach dem Bios ab (18)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...

iOS
16 iPads zentrall verwalten (18)

Frage von simonlohr zum Thema iOS ...

Viren und Trojaner
Ransomware .nm4 (15)

Frage von Zyklo92 zum Thema Viren und Trojaner ...

Windows 7
Freeware MSI Tool (13)

Frage von uridium69 zum Thema Windows 7 ...