//--- mostra la finestra dei parametri di input quando si lancia lo script
#property script_show_inputs
//--- parametri di input
input ulong InpThresholdSize=20; // soglia della grandezza del file in kilobytes
input string InpBigFolderName="big"; // cartella per file larghi
input string InpSmallFolderName="small"; // cartella per file piccoli
//+--------------------------------------------------------------------------------+
//| Funzione di avvio del programma Script |
//+--------------------------------------------------------------------------------+
voidOnStart()
{
string file_name; // variabile per memorizzare i nomi dei file
string filter="*.csv"; // filtro per la ricerca dei file
ulong file_size=0; // grandezza del file in byte
int size=0; // numero di file
//--- fa il print del percorso del file con cui stiamo per lavorare
PrintFormat("Working in %s\\Files\\ folder",TerminalInfoString(TERMINAL_COMMONDATA_PATH));
//--- riceve l'handle di ricerca nella root della cartella comune a tutti i terminali
long search_handle=FileFindFirst(filter,file_name,FILE_COMMON);
//--- controlla se FileFindFirst() è stato eseguito con successo
if(search_handle!=INVALID_HANDLE)
{
//--- sposta i file nel ciclo secondo la loro grandezza
do
{
//--- apre il file
ResetLastError();
int file_handle=FileOpen(file_name,FILE_READ|FILE_CSV|FILE_COMMON);
if(file_handle!=INVALID_HANDLE)
{
//--- riceve la grandezza del file
file_size=FileSize(file_handle);
//--- chiude il file
FileClose(file_handle);
}
else
{
PrintFormat("Fallimento nell'aprire il file %s, Codice Errore = %d",file_name,GetLastError());
continue;
}
//--- fa il print della grandezza del file
PrintFormat("La grandezza del file %s è uguale a %d byte",file_name,file_size);
//--- definisce il percorso per spostare il file
string path;
if(file_size>InpThresholdSize*1024)
path=InpBigFolderName+"//"+file_name;
else
path=InpSmallFolderName+"//"+file_name;
//--- sposta il file
ResetLastError();
if(FileMove(file_name,FILE_COMMON,path,FILE_REWRITE|FILE_COMMON))
PrintFormat("il file %s è stato spostato",file_name);
else
PrintFormat("Error, code = %d",GetLastError());
}
while(FileFindNext(search_handle,file_name));
//--- chiude l'handle di ricerca
FileFindClose(search_handle);
}
else
Print("File non trovato!");
}
|