Domino 9 und frühere Versionen > Entwicklung
checken, ob ein File vorhanden ist. Ein besserer Weg?
(1/1)
Marinero Atlántico:
Hi,
ich habe jetzt ein Programm, in dem ich prüfe, ob sich Dateien mit einem bestimmten Namen in einem Verzeichnis befinden.
Filenamen sind ungefähr so:
C:\kindOfDir\OMGO_2323323232331122_1.tif
wobei _2323323232331122 eine eindeutige Nummer ist.
und _1 eine Art Suffix.
Das heisst es können zu einer eindeutigen Nummer unterschiedliche Anzahlen von Dateien befinden (mit jeweils unterschiedlichen fortlaufenden Suffix.
Also Beispiel:
C:\kindOfDir\OMGO_2323323232331122_1.tif
C:\kindOfDir\OMGO_2323323232331122_2.tif
C:\kindOfDir\OMGO_2323323232331122_3.tif
Bei der nächsten fortlaufenden Nummer kann es aber z.B. nur ein File sein:
C:\kindOfDir\OMGO_23233232323319999_1.tif
Jetzt muss ich pro eindeutiger Nummer das höchste Suffix herausbekommen.
Ich mache das jetzt so:
--- Code: ---function tifHighestFileNumber as Integer
on error goto Fehler
[... some stuff ..]
For tifHighestFileNumber = 1 to 500
FileNameTif = FileNameTifBase & "_" & Cstr(tifHighestFileNumber) & ".tif"
' FileNameTifBase steht für alles links des letzten _
' tifHighestFileNumber für das Suffix
Open FileNameTif for Input as #File1
Close #File1
next
end function
ErrrorHandler:
If Err = 101 Then
tifHighestFileNumber = tifHighestFileNumber - 1
End If
[...some stuff ...]
--- Ende Code ---
Ich benutze also Errorhandling als Teil der Programmlogik. Definitiv nicht die feine englische.
Hat jemand eine elegantere Idee ???
Axel
Axel:
Hi,
man könnte es mal mit Dir$ versuchen. Das müsste dann so aussehen:
function tifHighestFileNumber as Integer
[... some stuff ..]
For tifHighestFileNumber = 1 to 500
FileNameTif = FileNameTifBase & "_" & Cstr(tifHighestFileNumber) & ".tif"
' FileNameTifBase steht für alles links des letzten _
' tifHighestFileNumber für das Suffix
If Dir$(FileNameTif, 0) = "" Then
tifHighestFileNumber = tifHighestFileNumber - 1
Exit For
End If
next
end function
Axel
TMC:
--- Zitat von: Axel am 23.03.05 - 18:18:44 ---man könnte es mal mit Dir$ versuchen.
--- Ende Zitat ---
+1 ;)
Ich mach das auch so, Auszug:
If Dir$(strFullpath,0) = "" Then
'file does not exist
OS_GetFilenameWithNumber = G_strFullpath
Exit Function
End If
Ich habe extra eine Routine, wo ich einen kompletten Pfad mit Filename reinkippe (z.B. "c:\meine daten\word document.doc". Wenn File noch nicht existiert, wird mir das String wieder zurückgegeben, wenn File schon existiert, wird dann weiter gesucht und daraus dann z.B. ein "c:\meine daten\word document_016.doc". (in dem Beispiel gibt es schon ..._001 - ..._015.doc).
Navigation
[0] Themen-Index
Zur normalen Ansicht wechseln