23. oktober 2002 - 22:53Der er
5 kommentarer og 1 løsning
hvordan finder jeg "største" filnavn
i et bibliotek der kun indeholder filer med navnet faktXXXXX.xls hvor XXXXX er tal mlm 1 og (i princippet) uendeligt vil jeg gerne finde det største XXXXX så jeg kan oprette en fil med navnet faktXXXXX+1.xls . Det er helt sikkert, at ikke alle tal XXXXX mellem 1 og det største XXXXX er brugt, hvorfor det ikke hjælper at tælle hvor mange filer der er i biblioteket.
How to do ?
(jeg er absolute VB beginner, så bær over med mig!)
Hvis det er det program du arbejder på, der står for oprettelsen af fakture-numre, ville jeg ligesom ndbth foreslå at du gemmer det senest anvendte i en lille fil. Så slipper du for at læse biblioteket igennem hver gang.
Men ellers:
Dim lbnr, nytnr, a as Long, b as Integer
For a = 0 To Filelist.ListCount - 1 b = Len(fileList.FileName) lbnr = val(Mid(FileList.FileName, 4, b-8)) If lbnr > nytnr Then nytnr = lbnr Next a
nytnr = nytnr + 1
Håber det er uden fejl, ellers er det vel til at gennemskue alligevel.
ndbth: en fil kan slettes hvis man finder ud af at der er noget galt med den, og for ikke at gentage fortidens synder med huller i fakturanummereringen vil jeg finde det aktuelt største nummer - ellers er ideen ok. joern: tja sådan ville jeg have lavet det i fortran (programmeringssprog fra den sene middelalder) så det ser rimeligt ud. Jeg vil prøve det i morgen aften.
Joern: Dit forslag virkede ikke da der var nogle erklæringer der ikke var lavet omkring filelist. Da nummeret skal findes uden at der bliver defineret nogen grafisk filelist er løsningen som denne: (hugget delvist fra andre svar her + lidt VB hjælp + lidt af dit program + lidt egen tankevirksomhed !!)
mypath = "c:\dokumenter\tilbud\" MyName = Dir(mypath, vbNormal) nytnr = 0 Do While MyName <> ""
If MyName <> ".\" And MyName <> "..\" Then If (GetAttr(mypath & MyName) And vbNormal) = vbNormal Then
b = Len(MyName) lbnr = Val(Mid(MyName, 4, b - 8)) lbnr = Val(Mid(MyName, 1, b - 4)) If lbnr > nytnr Then nytnr = lbnr
End If End If MyName = Dir
Loop
nytnr = nytnr + 1
Men du får nu pointene alligevel da jeg har hugget lidt af din kode.
Tak for point, det glæder mig at det kunne inspirere.
M.v.h. Jørn
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.