Differenze tra le versioni di "Sapere quale file è stato creato per ultimo"
Da Gambas-it.org - Wikipedia.
Riga 1: | Riga 1: | ||
Mostreremo un possibile codice per conoscere quale file fra diversi all'interno di una directory è stato creato per ultimo e prima che il programma Gambas, atto a rilevarlo, fosse lanciato. | Mostreremo un possibile codice per conoscere quale file fra diversi all'interno di una directory è stato creato per ultimo e prima che il programma Gambas, atto a rilevarlo, fosse lanciato. | ||
− | |||
− | |||
Public Struct InfoFile | Public Struct InfoFile | ||
nome As String | nome As String | ||
Riga 7: | Riga 5: | ||
End Struct | End Struct | ||
− | Private Const PERCORSO As String = "''/percorso/della/cartella/contenente/i file''" | + | Private Const PERCORSO As String = "<FONT color=gray>''/percorso/della/cartella/contenente/i file''</font>" |
Riga 19: | Riga 17: | ||
Dim j, index As Integer | Dim j, index As Integer | ||
− | + | For Each fl In Dir(PERCORSO, Null, gb.File) | |
− | + | info = New InfoFile | |
− | + | With info | |
− | + | .nome = fl | |
− | |||
− | |||
<FONT color=gray>' ''La data (comprensiva di ore, minuti e secondi) di ultimo accesso al file è convertita in un valore a virgola mobile:''</font> | <FONT color=gray>' ''La data (comprensiva di ore, minuti e secondi) di ultimo accesso al file è convertita in un valore a virgola mobile:''</font> | ||
− | + | .tempus = CFloat(Stat(PERCORSO &/ fl).LastAccess) | |
− | + | End With | |
− | + | vettore.Add(info) | |
− | + | Next | |
− | |||
− | + | f = vettore[0].tempus | |
− | <FONT color=gray>' ''Confronta il valore in virgola mobile di ciascuna data convertita, salvando quello più elevato (ossia il più recente) | + | <FONT color=gray>' ''Confronta il valore in virgola mobile di ciascuna data convertita, salvando quello più elevato (ossia il più recente), nonché l'indice dell'elemento vettoriale corrispondente al valore salvato:''</font> |
− | + | For j = 0 To vettore.Max | |
− | + | ff.Add(Max(f, vettore[j].tempus)) | |
− | + | If ff[j] <> f Then index = j | |
− | + | f = ff[j] | |
− | + | Next | |
− | |||
<FONT color=gray>' ''Mostra in console i risultati:''</font> | <FONT color=gray>' ''Mostra in console i risultati:''</font> | ||
− | + | Print "\nIl valore della data convertita più alto è = "; f | |
− | + | Print " corrispondente all'indice = "; index | |
+ | Print " L'ultimo file generato dunque è = "; PERCORSO; "/"; vettore[index].nome | ||
− | |||
− | |||
'''End''' | '''End''' | ||
− | + | Il predetto codice è utile anche per conoscere l'ultimo file ''modificato''. | |
− | |||
− |
Versione attuale delle 15:58, 11 set 2022
Mostreremo un possibile codice per conoscere quale file fra diversi all'interno di una directory è stato creato per ultimo e prima che il programma Gambas, atto a rilevarlo, fosse lanciato.
Public Struct InfoFile nome As String tempus As Float End Struct Private Const PERCORSO As String = "/percorso/della/cartella/contenente/i file" Public Sub Main() Dim fl As String Dim info As InfoFile Dim vettore As New InfoFile[] Dim f As Float Dim ff As New Float[] Dim j, index As Integer For Each fl In Dir(PERCORSO, Null, gb.File) info = New InfoFile With info .nome = fl ' La data (comprensiva di ore, minuti e secondi) di ultimo accesso al file è convertita in un valore a virgola mobile: .tempus = CFloat(Stat(PERCORSO &/ fl).LastAccess) End With vettore.Add(info) Next f = vettore[0].tempus ' Confronta il valore in virgola mobile di ciascuna data convertita, salvando quello più elevato (ossia il più recente), nonché l'indice dell'elemento vettoriale corrispondente al valore salvato: For j = 0 To vettore.Max ff.Add(Max(f, vettore[j].tempus)) If ff[j] <> f Then index = j f = ff[j] Next ' Mostra in console i risultati: Print "\nIl valore della data convertita più alto è = "; f Print " corrispondente all'indice = "; index Print " L'ultimo file generato dunque è = "; PERCORSO; "/"; vettore[index].nome End
Il predetto codice è utile anche per conoscere l'ultimo file modificato.