Differenze tra le versioni di "Conoscere la dimensione di un file"
Riga 107: | Riga 107: | ||
==Uso della funzione esterna ''Stat'' di C== | ==Uso della funzione esterna ''Stat'' di C== | ||
− | Si potrà, volendo, utilizzare anche la funzione esterna ''stat()'' di C con le modalità indicate in [[ | + | Si potrà, volendo, utilizzare anche la funzione esterna ''stat()'' di C con le modalità indicate in [[Stat_()|questa pagina della Wiki]]. |
Versione delle 16:28, 14 nov 2014
Per conoscere la dimensione di un file, si potranno adottare almeno cinque modalità.
Indice
[nascondi]Uso della funzione Lof()
La funzone Lof() restituisce proprio la lunghezza in byte di un file:
Public Sub Main() Dim fl As File fl = Open "/percorso/del/file" For Read Print "La dimensione del file è: "; Lof(fl); " byte" fl.Close End
Uso della proprietà .Size della Classe Stat
La Classe Stat restituisce una serie di informazioni relative ai file.
Un esempio può essere il seguente:
Public Sub Button1_Click() Dim s As String s = Stat("/percorso/del/file").Size Print "La dimensione del file è: "; s; " byte" End
Uso della funzione Len()
Useremo la funzione Len() per conoscere la lunghezza della stringa di dati restituita dalla funzione .Load della Classe File:
Public Sub Button1_Click() Dim s As String s = File.Load("/percorso/del/file") Print "La dimensione del file è: "; Len(s); " byte" End
Uso della funzione Seek
Potremo usare anche leggere la quantità di dati contenuti in un file con la funzione Seek, come ad esempio:
Public Sub Main() Dim fl As File Dim i As Integer fl = Open "/percorso/del/file" For Read While Not Eof(fl) inc i Seek #fl, i Wend Print "La dimensione del file è: "; i; " byte" fl.Close End
Uso della proprietà .Count di un vettore
Potremo usare anche la proprietà .Count di un vettore per conoscere - dopo l'intera lettura di un file - la dimensione del file medesimo, come ad esempio:
Public Sub Main() Dim fl As File Dim bb as New Byte[] Dim b As Byte fl = Open "/percorso/del/file" For Read While Not Eof(fl) Read #fl, b bb.Add(b) Wend Print "La dimensione del file è: "; bb.Count; " byte" fl.Close End
o anche così usando il metodo Read() della variabile vettoriale di tipo Byte[]:
Public Sub Main() Dim fl As File Dim bb as Byte[] fl = Open "/percorso/del/file" With bb = New Byte[Lof(fl)] .Read(fl) End With Print "La dimensione del file è: "; bb.Count; " byte" fl.Close End
Uso della funzione esterna Stat di C
Si potrà, volendo, utilizzare anche la funzione esterna stat() di C con le modalità indicate in questa pagina della Wiki.
Uso di alcune funzioni della libreria stdio.h di C
Si potranno, volendo, utilizzare anche alcune funzioni esterne della libreria stdio.h di C, come segue:
Library "libc:6" Private Const SEEK_END As Integer = 2 ' FILE *fopen(const char *path, const char *mode) Private Extern fopen(path As String, mode As String) As Pointer ' int fseek(FILE *stream, long offset, int whence) Private Extern fseek(fs As Pointer, offset As Long, whence As Integer) As Integer ' long ftell(FILE *stream) Private Extern ftell(fs As Pointer) As Long ' int fclose(FILE *stream) Private Extern fclose(fs As Pointer) As Integer Public Sub Main() Dim fl As Pointer Dim l As Long fl = fopen("/percorso/del/file", "rb") ' Determina la dimensione del file: fseek(fl, 0, SEEK_END) l = ftell(fl) Print "Numero di byte nel file: "; l fclose(fl) End