Ragazzi, la discussione si fa più interessante :D. Buone vacanze a Gianluigi.
Ieri ho creduto di avervi risposto, ma oggi non ho trovato il mio messaggio.
Vi dico subito che, finalmente ho capito tutto (o quasi) e sono riuscito a creare il pacchetto dinstallazione molto bene (esattamente come facevo prima), a installate lexcoc, per ora, sullo stesso computer del progetto e a utilizzarlo senza errori. Come ho fatto?... Suspence...
Ho abbandonato l'uso di application.path, perché mi sono accorto che, usarlo o meno, sull'ide è la stessa cosa! E poi ho usato queste istruzioni per il file in creazione:
scocfil = user.home & "/cocfiles"
If Not Exist(scocfil) Then
Mkdir scocfil
Endif
If Exist(scocfil &/ "passi.txt") Then
Kill scocfil &/ "passi.txt"
Endif
hFile = Open scocfil &/ "passi.txt" For Write Create
Ci voleva tanto? :P
Grazie a tutti.
Rimane però da spiegare qualcosa nella procedura di creazione del pacchetto installazione:
Pag. 2 Changelog. Che cos'è? A che serve? Che ci si scrive? Nomi di percorsi e file a mano libera.. pardon... a memoria e tastiera?
Pag. 8 Extra files. Si deve cliccare su aggiungi. Appare un nome di cartella '.hidden' (che non si può cambiare) e quello che sembra un file di testo 'changelog'. Se clicco su Ok non succede nulla. Devo annullare. Come si fa?
Passo e chiudo.
Ho provato. Ho chiesto di memorizzare changelog nella stessa cartella che ho usato per i files di lexcoc, ma non ce l'ho trovato, forse perché lui comunque va nella cartella .hidden ma, anche mostrando i file nascosti, non ho trovato nemmeno .hidden.
Ho provato a creare il pacchetto anche per solitgio (il solitario di Giovanna che ho messo tra i progetti degli utenti) ma, quando eseguo l'installato, mi succede una cosa allucinante. Guardate quete istruzioni:
Public Sub leggi_opz()
If Exist(scocfil &/ "opz.txt") Then
hfile = Open scocfil &/ "opz.txt" For Input
...
Else
Message.Info("Il file '" & scocfil &/ "opz.txt' non esiste perciò viene costruito automaticamente.")
'
scrivi_opz
Endif
End
...
Public Sub scrivi_opz()
If Exist(scocfil &/ "opz.txt") Then
Kill scocfil &/ "opz.txt"
Endif
hfile = Open scocfil &/ "opz.txt" For Create
...
End
Sotto ide va tutto bene, ma l'installato, in 'leggi_opz', mi dà il messaggio di errore per l'inesistenza di 'opz.txt' e, subito dopo, in 'scrivi_opz', il comando kill prende 'access forbidden'!!! Vuol dire che la stessa istruzione (If Exist(scocfil &/ "opz.txt") Then), in 'leggi_opz', non ha trovato il file e, in 'scrivi_opz', l'ha trovato!
Come è possibile? Nel programma non ci sono altri luoghi dove si scriva o legga il file "opz.txt". :hard:
Certo, Gianluigi. E ho seguito il consiglio tuo e di altri. E' così che ho risolto il problema dell'installazione di lexcoc.
Con solitgio c'è l'allucinazione che ho descritto nel messaggio precedente. Che cosa ho fatto?
Dillo tu!
Vabbè, non voglio disturbarti mentre ti godi le tue favolose vacanze.
Ho disabilitato (spero temporaneamente) la gestione delle opzioni, in modo che il programma non accedesse più al file 'opz.txt', e il programma installato ha funzionato perfettamente con altri 4 file trattati nella stessa maniera di 'opz.txt', cioè tutti nella cartella 'cocfiles' (che poi è la stessa usata per lexcoc e questo, se ci fossero file omonimi, sarebbe un guaio).
Ma la follia dell'istruzione 'If Exist(scocfil &/ "opz.txt") Then', che in un punto del programma installato dà un risultato e nell'altro l'opposto, qualcuno di voi me la deve spiegare! >:(
Altrimenti vi scateno san Midi, con cui ormai sono in confidenza sanmidi
P.S. Naturalmente la cartella 'cocfiles', anche all'inizio di solitgio, è stata trattata, come per lexcoc così:
scocfil = user.home & "/cocfiles"
If Not Exist(scocfil) Then
Mkdir scocfil
Endif
P.P.S.
Datevi pace almeno voi. Ho cambiato nome al file 'opz.txt', l'ho chiamato 'opzioni.txt' e ora funziona. Ma non sono soddisfatto. Farò la 'prova del nove'.
P.P.P.S.
La prova del nove è negativa! Ho rimesso il vecchio nome 'opz.txt' e, dopo la nuova installazione, solitgio... ha continuato a funzionare. Il mistero rimane lì.
Va bene. E' difficile rispondere a queste assurdità. Involontarie, s'intende. Io ho riferito quello che ho visto. Confidando nella dea fortuna, che sarebbe il caso di mettere tra gli altri 'smiles', direi di chiudere la discussione con 'RISOLTO'.
Ciao