Gambas-it

Gambas3 => Programmazione => Topic aperto da: akrobaticone - 02 Agosto 2015, 10:33:37

Titolo: Caricare file all'avvio
Inserito da: akrobaticone - 02 Agosto 2015, 10:33:37
Nel programma ho un file di risorse che carico all'avvio così
Codice: gambas [Seleziona]
    If Not Exist(user.home &/ ".MiaCartella") Then Mkdir (user.home &/ ".MiaCartella")  ' se non esiste crea la cartella MiaCartella
    If Not Exist(user.home &/ ".MiaCartella/MioFile.txt") Then         ' e mettici il file
        Copy "Dati/MioFile.txt" To user.home &/ ".MiaCartella/MioFile.txt"
    Endif

il file a questo punto è presente nella cartella di lavoro copiato per la prima volta dal sorgente di Gambas (nella cartella Dati) nella cartella nascosta nella Home dell'utente
modificando il file nei sorgenti di Gambas comunque non viene più modificato quello installato perchè già presente
per aggiornarlo dovrei prima cancellare quello vecchio nella home con Kill e poi copiarlo di nuovo
questo avviene tutte le volte che si apre il programma.
esiste un altro sistema più efficente?

il problema si pone quando aggiorno il programma con una nuova versione e quindi anche il file di supporto potrebbe essere stato aggiornato
chiaramente l'utente che installa la nuova versione dovrebbe cancellare il file MioFile che si trova nella cartella nascosta .MiaCartella

spero di essere stato chiaro il concetto è un po contorto....
  
Titolo: Re: Caricare file all'avvio
Inserito da: vuott - 02 Agosto 2015, 20:13:10
 :-\ ...potresti assegnare come nome al file presente nella cartella Dati il numero della versione dell'applicazone; e poi far semplicemente confrontare il nome del file salvato nella cartella nascosta con la versione corrente dell'applicazione.
Se non v'è concordanza vuol dire che la versione dell'applicazione è più recente del file presente nella cartella nascosta.
Titolo: Re: Caricare file all'avvio
Inserito da: akrobaticone - 03 Agosto 2015, 00:13:10
Semplice ed efficace :2birre:
ci provo

Grazie mille
Titolo: Re: Caricare file all'avvio
Inserito da: vuott - 03 Agosto 2015, 00:44:13
Più o meno una cosa così:
Codice: gambas [Seleziona]
If File.BaseName(Dir(User.Home, Application.Name & "*", gb.File)[0]) <> Application.Name & Application.Version Then
      Copy Application.Name & Application.Version To User.Home &/ Application.Name & Application.Version
Endif