Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Existiert Datei?

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Constantin



Anmeldungsdatum: 31.08.2007
Beiträge: 36

BeitragVerfasst am: 22.02.2008, 20:07    Titel: Existiert Datei? Antworten mit Zitat

Hi,

gibt es einen kurzen Befehl, um herauszufinden, ob eine Datei existiert?
Gibt es einen Befehl, um herauszufinden, ob es in dem Ordner X irgendeine Datei gibt?

Im Notfall könnte ich natürlich
Code:

dim as string text
dim as byte datei_existiert = false

open "datei.txt" for input as #1
do
   input #1, text
   if text <> "" then
      datei_existiert = true
   end if
loop until eof(1)
close #1

verwenden, aber das dauert länger und kann nicht verwendet werden, um alle dateien im ordner zu erfassen...
SuFu hab ich auch schon verwendet, nix gefunden.

Kann mir jemand helfen?
Vielen Dank im Voraus!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Yahoo Messenger
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 22.02.2008, 20:15    Titel: Antworten mit Zitat

Code:

if dir(Filename) <> "" then
'datei existiert...
End if

_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
raph ael



Anmeldungsdatum: 12.04.2006
Beiträge: 472

BeitragVerfasst am: 22.02.2008, 20:20    Titel: Antworten mit Zitat

Code:

dim f as integer = freefile
open "datei" for output as #f
if lof(f) = 0 then
    print "Die Datei existiert nicht."
else
    print "Die Datei existiert.
end if
close #f

Funktioniert, wenn die Datei nicht existiert, aber keinen Inhalt hat. Ansonsten kann man auch mit open pipe das machen. Hab ich nicht getestet, aber es müsste so funktionieren:
Code:

dim f as integer = freefile
dim ex as boolean = false
dim what as string
open pipe "dir" for input as #f
while not eof(f)
   line input #f, what
   if instr(what, "datei") then
      ex = true
   end if
wend
if ex then
   print "Datei existiert"
else
   print "Datei existiert nicht"
end if
close #f


Edit: aah schon wieder ein Befehl den ich übersehen habe verlegen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 22.02.2008, 20:23    Titel: Antworten mit Zitat

raph ael hat Folgendes geschrieben:
open "datei" for output as #f


bist du wahnsinnig?! testest du überhaupt, was du schreibst? so würdest du jede datei deines system unwiderruflich zerstören!

wennschon, dann müsste da BINARY statt OUTPUT stehen, was aber den nachteil hat, dass die datei angelegt wird, sofern sie nicht existiert und dann 0 byte groß ist. Sicherer wäre die INPUT-Methode (man muss den error-code abfangen), aber am besten einfach DIR.
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 22.02.2008, 20:53    Titel: Antworten mit Zitat

In VBScript und PHP, wo ich heute viel arbeite, ist dies natürlich besser gelöst:

http://msdn2.microsoft.com/en-us/library/x23stk5t%28VS.85%29.aspx
http://www.php.net/manual/de/function.file-exists.php

Für QB hatte ich früher

http://beilagen.dreael.ch/QB/FILE_EX.BAS

als geeignete Ersatz-FUNCTION veröffentlicht; dürfte vermutlich in FreeBasic 1:1 verwendbar sein.

Ansonsten würde ich evtl. eine derart elementare und häufige Funktion als Feature Request ans FreeBasic-Entwicklerteam für einen Built-In-Befehl stellen!
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Constantin



Anmeldungsdatum: 31.08.2007
Beiträge: 36

BeitragVerfasst am: 22.02.2008, 21:06    Titel: Antworten mit Zitat

ich werd mich mal mit DIR vertraut machen... jo

Danke!!!!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Yahoo Messenger
Flo
aka kleiner_hacker


Anmeldungsdatum: 23.06.2006
Beiträge: 1210

BeitragVerfasst am: 23.02.2008, 13:01    Titel: Antworten mit Zitat

bei dem open "datei" for output as #1 xD

_jojo_: _jede_ nicht grade aber.. mh.. jaah, doch nen haufen *gg* (wenn man mit dieser funktion ein backupprogramm schreiben will ROFL)
in qb hab ich immer open "datei" for append as #1 genommen (dann mit lof prüfen)
das problem war nur, existiert die nu nicht oder ist sie eunfach nur leer?
_________________
MFG
Flo

Satoru Iwata: Wer Spaß am Spielen hat, fragt nicht nach Grafik.

zum korrekten Verstaendnis meiner Beitraege ist die regelmaessige Wartung des Ironiedetektors unerlaesslich.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 23.02.2008, 14:22    Titel: Antworten mit Zitat

APPEND würde zum selben Ergebnis wie BINARY führen...
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 23.02.2008, 20:48    Titel: Antworten mit Zitat

Es gibt einen kurzen Befehl um die Existens einer Datei zu prüfen, siehe Referenz FileExists:
Code:
#INCLUDE "file.bi" 'oder "vbcompat.bi"

DIM filename AS STRING

PRINT "Bitte geben Sie einen Dateinamen ein: "
LINE INPUT filename

IF FILEEXISTS( filename ) THEN
  PRINT "Datei gefunden: " & filename
ELSE
  PRINT "Datei nicht gefunden: " & filename
END IF

_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 23.02.2008, 21:07    Titel: Antworten mit Zitat

nice, hab das gleich mal zu den Code-Beispielen im fb-portal hinzugefügt cool
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 23.02.2008, 21:24    Titel: Antworten mit Zitat

und Jojo hat hier beschrieben wie ein Verzeichnis geprüft wird ob noch Dateien vorhanden sind happy
http://forum.qbasic.at/viewtopic.php?p=69032#69032
oder:
Code:
IF DIR("*") <> "" THEN 'Datei da...
...

_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 23.02.2008, 21:32    Titel: Antworten mit Zitat

volta hat Folgendes geschrieben:
Es gibt einen kurzen Befehl um die Existens einer Datei zu prüfen, siehe Referenz FileExists:

Gerade recherchiert:

http://www.freebasic.net/wiki/wikka.php?wakka=KeyPgFileexists

Somit erübrigt sich mein im letzten Posting genannter Feature Request bereits und das Titelproblem ist ebenfalls vollständig gelöst. => Somit können alle zuvor genannten "Bastlerlösungen" komplett "beerdigt" werden.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz