Autor Thema: checken, ob ein File vorhanden ist. Ein besserer Weg?  (Gelesen 1159 mal)

Marinero Atlántico

  • Gast
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

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: checken, ob ein File vorhanden ist. Ein besserer Weg?
« Antwort #1 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
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: checken, ob ein File vorhanden ist. Ein besserer Weg?
« Antwort #2 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).
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz