Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
200-ghz
Anmeldungsdatum: 21.02.2009 Beiträge: 16
|
Verfasst am: 30.09.2009, 18:31 Titel: Existiert die Datei |
|
|
(Wie-)kann man abfragen ob eine Datei existiert? |
|
Nach oben |
|
 |
St_W

Anmeldungsdatum: 22.07.2007 Beiträge: 956 Wohnort: Austria
|
Verfasst am: 30.09.2009, 18:33 Titel: |
|
|
Code: | if dir("datei.txt") <> "" then print "Datei existiert" else print "Datei existiert nicht" |
_________________ Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken) |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 30.09.2009, 18:58 Titel: |
|
|
Viel besser: (Warum nehmt ihr alle immer noch Dir, wo's doch einen eigenen Befehl dafür gibt?!)
http://www.freebasic-portal.de/befehlsreferenz/fileexists-277.html _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
St_W

Anmeldungsdatum: 22.07.2007 Beiträge: 956 Wohnort: Austria
|
Verfasst am: 01.10.2009, 00:24 Titel: |
|
|
DIR() ist die von QB 7.1 bekannte Variante, daher wird sie noch oft verwendet. Ich wusste z.B. gar nicht, dass es so etwas wie FileExists gibt.
Rein aus Interesse hab ich gerade die herkömmliche Methode und die neue bezüglich Geschwindigkeit getestet und bin auf ein interessantes Ergebnis gekommen: Die DIR() Methode ist etwas schneller als die mit FileExists.
Probiert es selbst aus:
Dazu müsst ihr nur eine Datei mit dem Namen "sdf.log" anlegen und das folgende Programm starten:
Code: | #include "file.bi"
dim startz as Double
dim endz as Double
startz = timer
for q as integer = 0 to 10000
if dir("sdf.txt") <> "" then asm nop
Next
endz = timer
print "DIR() mit nicht existierender Datei: "; endz-startz; "s"
startz = timer
for q as integer = 0 to 10000
if FileExists("sdf.txt") then asm nop
Next
endz = timer
print "FileExists() mit nicht existierender Datei: "; endz-startz; "s"
startz = timer
for q as integer = 0 to 10000
if dir("sdf.log") <> "" then asm nop
Next
endz = timer
print "DIR() mit existierender Datei: "; endz-startz; "s"
startz = timer
for q as integer = 0 to 10000
if FileExists("sdf.log") then asm nop
Next
endz = timer
print "FileExists() mit existierender Datei: "; endz-startz; "s"
sleep |
Das Ergebnis auf meinem Rechner:
Code: | DIR() mit nicht existierender Datei: 1.011593093535339s
FileExists() mit nicht existierender Datei: 1.094503072316002s
DIR() mit existierender Datei: 1.041838278331852s
FileExists() mit existierender Datei: 1.901189396976406s |
_________________ Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken) |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 01.10.2009, 00:47 Titel: |
|
|
Als ob das bei solchen Operationen eine Rolle spielen würde...
Außerdem kannst du sowas unter Windows (oder auch Linux) gar nicht zuverlässig testen:
- Mehere Prozessese laufen gleichzeitig -> Timing nicht exakt
- Disk-Cache -> Irgendwann wird nicht mehr von der Festplatte gelesen. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 01.10.2009, 16:33 Titel: |
|
|
Ich nehme DIR gern, wenn ich eine Liste von Dateien brauche (z. B. alle Dateien mit der Endung .DAT) oder für sonst einen Fall, in dem Wildcards eine Rolle spielen. Für das Suchen nach einer evtl. versteckten Datei muss man bei DIR weitere Angaben machen. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
200-ghz
Anmeldungsdatum: 21.02.2009 Beiträge: 16
|
Verfasst am: 07.10.2009, 15:38 Titel: |
|
|
Wie kann man alle dateien auslesen die auf z.B. (.Dat) enden? |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 07.10.2009, 15:50 Titel: |
|
|
mit DIR...
Runterscrollen, beispiel lesen, vestehen, anwenden. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
|