Some random things to consider:
- is the numbering just to ensure unique filenames? does each file have an associated docket/invoice/purchase number? can you use that?
- can you use the date and time as part of filename, eg filename could be docket-yyyymmdd-hh-nnn.csv where nnn is a sequence number of dockets dockets for the hour? or docket-yyyymmdd-nnn.csv where nnn is a sequence number of dockets for the day?
- using the date as part of the filename means that you can easily archive old data to keep disk space usage under control, eg, to compress all of last month's docket files into a single Zip file:
PKZIP -ADD - MOVE docketarchive-201909.zip docket-201909*.csv
- are the files to be called eg docket8.csv, docket9.csv, docket10.csv, docket11.csv, or perhaps docket008.csv, docket009.csv, docket010.csv, docket011.csv
the advantage of using a fixed number of digits is that file listings sorted by name will also be sorted by number
the disadvantage is that you are limited to eg, 1000 3-digit numeric combinations
- how to find the next sequence number to use
1/ brute-force: try all numbers 1, 2, 3... until find a number not yet used
Dim FileNameNumber As Int = 0
Dim FileName As String
Do
FileNameNumber = FileNameNumber + 1
FileName = "docket-" & FileNameNumber & ".csv"
Loop Until DIR$(FileName) = "" 'check file does not already exist - function probably called File.Exist() or similar
2/ brute-force via file listing
get list of files in folder
MaxUsedFileNumber = 0
go through list of files, find highest number already used
FileName = "docket-" & (MaxUsedFileNumber + 1) & ".csv"
3/ record last used file number in a separate file:
'at program start:
FileNameNumber = 0
If "lastdocketnumber.csv" file exists then
read FileNameNumber from file "lastdocketnumber.csv"
End If
'when need next number
'use code from 1/ to get next available file number
'at program end or activity pause or similar
write FileNameNumber to file "lastdocketnumber.csv"