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)
  For Each fl In Dir(PERCORSO, Null, gb.File)
+
    info = New InfoFile
+
    With info
    info = New InfoFile
+
      .nome = fl
    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)
+
      .tempus = CFloat(Stat(PERCORSO &/ fl).LastAccess)
    End With
+
    End With
    vettore.Add(info)
+
    vettore.Add(info)
+
  Next
  Next
 
 
   
 
   
  f = vettore[0].tempus
+
  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>
' ''nonché l'indice dell'elemento vettoriale corrispondente al valore salvato:''</font>
+
  For j = 0 To vettore.Max
  For j = 0 To vettore.Max
+
    ff.Add(Max(f, vettore[j].tempus))
    ff.Add(Max(f, vettore[j].tempus))
+
    If ff[j] <> f Then index = j
    If ff[j] <> f Then index = j
+
    f = ff[j]           
    f = ff[j]           
+
  Next
  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 "\nIl valore della data convertita più alto è =  "; f
  Print "                corrispondente all'indice =  "; index
+
  Print "                corrispondente all'indice =  "; index
 +
  Print "          L'ultimo file generato dunque è =  "; PERCORSO; "/"; vettore[index].nome
 
   
 
   
  Print "          L'ultimo file generato dunque è =  "; PERCORSO; "/"; vettore[index].nome
 
 
 
 
  '''End'''
 
  '''End'''
 
+
Il predetto codice è utile anche per conoscere l'ultimo file ''modificato''.
 
 
In vero 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.