Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Marinero Atlántico am 23.03.05 - 17:43:43

Titel: checken, ob ein File vorhanden ist. Ein besserer Weg?
Beitrag von: Marinero Atlántico am 23.03.05 - 17:43:43
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 ...]

Ich benutze also Errorhandling als Teil der Programmlogik. Definitiv nicht die feine englische.
Hat jemand eine elegantere Idee  ???

Axel
Titel: Re: checken, ob ein File vorhanden ist. Ein besserer Weg?
Beitrag von: Axel am 23.03.05 - 18:18:44
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
Titel: Re: checken, ob ein File vorhanden ist. Ein besserer Weg?
Beitrag von: TMC am 23.03.05 - 20:38:08
man könnte es mal mit Dir$ versuchen.
+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).