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:

Dateigröße in FB herausfinden

 
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
surfer87



Anmeldungsdatum: 16.09.2004
Beiträge: 103

BeitragVerfasst am: 05.01.2006, 22:27    Titel: Dateigröße in FB herausfinden Antworten mit Zitat

Hi, mein Problem ist simpel:

Wie finde ich die Größe einer beliebigen Datei heraus?

Danke
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 05.01.2006, 22:40    Titel: Antworten mit Zitat

Hallo.

Code:
INPUT "Datei: ", d$
If d$="" THEN END
OPEN d$ FOR BINARY AS #1
PRINT "Die Datei ist "; LTRIM$(STR$(LOF(1))); " Bytes groß."
CLOSE #1
SLEEP: END


Viele Grüße!
Sebastian
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 05.01.2006, 23:05    Titel: Antworten mit Zitat

@ Surfer:
Siehe dazu auch die entsprechenden Referenz-Einträge:
http://fb.exp-soft.de/r.php?s=OPEN
http://fb.exp-soft.de/r.php?s=LOF
http://fb.exp-soft.de/r.php?s=LOC

@ Sebi:
LTRIM$ ist nicht mehr nötig, wie in einem anderen Thread bereits diskutiert wurde (ich glaub es war im Windows-Subforum unter Speichernutzung oder so...); STR reserviert kein Leerzeichen für das Vorzeichen mehr.

Have a nice day
Ciao
_________________
fully biological degradable

Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 05.01.2006, 23:14    Titel: Antworten mit Zitat

Hi Dusky!

Weiß ich schon. Hab ich auch gelesen. lächeln Ich mach das LTRIM$(...) hauptsächlich aus Gewohnheit und damit der Code auch unter QB problemlos klappt. Wenn die Kompatibilität zu QB so einfach herzustellen ist, warum nicht... zwinkern

Viele Grüße!
Sebastian
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 06.01.2006, 19:41    Titel: Antworten mit Zitat

Natürlich funzt der Code von Sebastian
Sebastian hat Folgendes geschrieben:
INPUT "Datei: ", d$
If d$="" THEN END
OPEN d$ FOR BINARY AS #1
PRINT "Die Datei ist "; LTRIM$(STR$(LOF(1))); " Bytes groß."
CLOSE #1
SLEEP: END
Er hat aber einen Nachteil:
Ist die Datei d$ nicht vorhanden, legt FB freundlicherweise gleich eine an,
prüft die Dateigröße und meldet 0 als Ergebnis. Wenn ich also 1000
Dateien prüfe und gebe ein falsches Verzeichnis an, erhalte ich damit auch
1000 0-Byte Einträge. Nun ist 1000*0=0 und damit kein Problem..
..aber 1000 Einträge belegen auch unnötig Platz auf der Platte, deshalb mein
Tipp:
Vorher die Datei auf Vorhandensein prüfen und dann die Größe abfragen.
http://forum.qbasic.at/viewtopic.php?p=19759&highlight=#19759
Viele Grüße
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 06.01.2006, 20:50    Titel: Antworten mit Zitat

Tjo, der APIs kenn ich von VB her. In der Fragestellung stand aber nix von diesen Anforderungen. Surfer wollte nur wissen, wie man die Größe einer Datei ermittelt. happy Es hätte also gereicht, wenn ich das hier geschrieben hätte:

Mögliches Posting hat Folgendes geschrieben:
Hallo.
Mit LOF().
Viele Grüße!
Sebastian

durchgeknallt Hab also eigentlich schon wieder zu viel gearbeitet... grinsen
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 06.01.2006, 21:19    Titel: Antworten mit Zitat

Ach da du gerade die Anforderungen ansprichst:
surfer87 hat Folgendes geschrieben:
Wie finde ich die Größe einer beliebigen Datei heraus?
ich finde die Betonung liegt dabei auf beliebig!
Du hast das schon gut gemacht(*Schulterklopf*), ich habe das alles nur in eine Function packen wollen und bin dann darauf gestoßen, daß(s.o.)..
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 06.01.2006, 22:03    Titel: Antworten mit Zitat

ytwinky hat Folgendes geschrieben:
Ach da du gerade die Anforderungen ansprichst:
surfer87 hat Folgendes geschrieben:
Wie finde ich die Größe einer beliebigen Datei heraus?
ich finde die Betonung liegt dabei auf beliebig!

dafür gibts die OPEN (Funktion), kombiniert mit Sebastians Vorschlag:
Code:
INPUT "Datei: ", d$
If d$="" THEN END
SELECT CASE OPEN (d$ FOR INPUT AS #1)
   CASE 0
      PRINT "Die Datei ist "& LOF(1) & " Bytes groß."
   CASE 2
      PRINT "Datei existiert nicht!"
   CASE ELSE
      PRINT "Fehler beim Öffnen der Datei!"
END SELECT
CLOSE #1
SLEEP: END

Gruß
Volta
_________________
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
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 06.01.2006, 22:58    Titel: Antworten mit Zitat

..und was ist mit dem Anlegen von Dateien?
Soweit ich weiß|herausgefunden habe legt Open(..) immer eine neue Datei an(s.o.)
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 07.01.2006, 01:04    Titel: Antworten mit Zitat

In jedem Modus außer dem INPUT-Modus. In fact gibts im FB-Source sogar ne Function, die auf diese Art prüft ob eine Datei existiert.

Sonst würde ja auch die Fehlernummer wenig sinn machen, wie zwinkern

Siehe übrigens auch:
http://fb.exp-soft.de/r.php?s=Fehlernummern

Have a nice day
Ciao
_________________
fully biological degradable

Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 07.01.2006, 20:34    Titel: Antworten mit Zitat

Alles klar, ich habe mit kriminalistischem Spürsinn etwas ganz
triviales 'herausgefunden', aber es war nicht falsch:
Sebastian hat Folgendes geschrieben:
OPEN d$ FOR BINARY AS #1
und
volta hat Folgendes geschrieben:
OPEN (d$ FOR INPUT AS #1)

Diesen kleinen aber wichtigen Unterschied hatte ich übersehen.. mit dem Kopf durch die Mauer wollen
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 07.01.2006, 22:44    Titel: Antworten mit Zitat

Dass beim Zugriff mit BINARY die Datei angelegt wird, falls sie nicht besteht, ist kein Geheimnis! Das war auch bei QB schon so. Du könntest in dem Modus ja genauso gut ein PUT #x,, blub% machen und hättest dann etwas in die Datei geschrieben. INPUT ist hingegen nur zum Öffnen/Lesen fähig und legt somit auch nix an. zwinkern
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 08.01.2006, 00:38    Titel: Antworten mit Zitat

Danke Sebastian,
falls es nicht ganz klar geworden ist: ich habe es jetzt verstanden peinlich grinsen
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 08.01.2006, 01:11    Titel: Antworten mit Zitat

Ja!
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
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