Visualizza post

Questa sezione ti permette di visualizzare tutti i post inviati da questo utente. N.B: puoi vedere solo i post relativi alle aree dove hai l'accesso.


Post - Cocirio

Pagine: 1 2 [3] 4 5 ... 9
31
Ho considerato chiusa la discussione precedente sullo stesso argomento perché l'obiettivo che mi ero preposto era stato raggiunto, ma era un dettaglio.
Ora mi sono accorto che una serie di file html e relative immagini, residenti nella cartella del progetto, non vengono letti dal programma installato con le seguenti istruzioni:

Codice: gambas [Seleziona]

Public Sub Form_Open()
...
  Mod1.scocfil = user.home & "/cocfiles"
  If Not Exist(Mod1.scocfil) Then
    Mkdir Mod1.scocfil
  Endif
...
End
...
Public Sub Menu3_Click()
Dim ss1 As String
  ss1 = "solhelp.htm"
  Message.Info("Clicca qui: <a href='" & ss1 & "'>Info solitgio: solhelp.htm</a>" & String$(2, Chr(9)))
End


In realtà il programma dovrebbe avviare il browser di default che a sua volta leggerebbe il primo file della serie e poi, su richiesta dell'utente, i successivi.
Ho voluto provare a mettere tutti questi file nella cartella creata nella home dell'utente finale e, per leggere il primo html ho cambiato l'istruzione
ss1 = "solhelp.htm"
in
ss1 = Mod1.scocfil &/  "solhelp.htm"
Questa modifica ha avuto successo nell'installazione sullo stesso computer, ma credo che non funzionerà quando installerò il programma in un computer diverso, perché qualcuno dovrà portare tutti questi file nel target. Credo che potrei aggiungere delle istruzioni che lo facciano, ma ho pensato che forse gli 'extra file' sono proprio questi. Così, con uno sforzo erculeo  :), sono riuscito a mettere qualcosa a pagina 8 della procedura, che però Gambas3 non capisce :nono:.
Nell'allegato potete vedere che cosa ho fatto. Guardate, riflettete e correggete. Grazie.


32
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ì:
Codice: gambas [Seleziona]

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

33
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:

Codice: gambas [Seleziona]

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:
 

34
Ah! Quindi le scrive il programmatore . E poi l'utente come e dove le legge? Quindi se io metto qualcosa a pag. 2, poi a pag. 8 devo solo cliccare su ok e Gambas 3 lo accetta? Ora provo. Grazie.

35
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:
Codice: gambas [Seleziona]

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.

36
Invece non è risolto niente! Il percorso /usr/bin/lexcoc sul target non è una directory valida e ho accertato che il file "istruzioni_lexcoc.txt" non esiste da nessuna parte nel filesystem. Dunque non è stato incluso nel pacchetto .deb di installazione. Pertanto nella procedura di creazione del pacchetto c'è qualcosa da fare che io non so fare. Avendo poi cercato "lexcoc" in /usr/bin, ho visto che non è una cartella e nemmeno un file qualunque: è di tipo sconosciuto. A me basterebbe che tutta la cartella del progetto fosse portata in una zona accessibile del target. Forse esiste un generatore di pacchetti .deb più maneggevole?
Grazie lo stesso.

37
No. Nell'installato l'istruzione Chmod sAppPath To "rwxr-xrwx" provoca un errore che non ho registrato ma che era più o meno "operaziione non consentita".
La variabile sAppPath ovviamente conteneva /usr/bin/lexcoc.
Poi, tolta l'istruzione Chmod e rifatta l'installazione, ho preso gli errori di cui allego le screenshot.
La prima dice che il file "istruzioni_lexcoc.txt" non esiste in /usr/bin/lexcoc. Avendo cercato questo file in tutto il filesystem senza successo, è evidente che il file non è incluso nel pacchetto .deb.
Per la seconda screenshot devo andare a vedere l'istruzione 222, ma lo farò quando torno sul sistema di origine (ora sono sul target  dove non c'è il source e non è installato gambas3).
Va bene, è sempre il tentativo di creazione di un file:
hFile = Open sAppPath &/ "passi.txt" For Create
Ma l'errore è dovuto al fatto che 'lexcoc', trovato in /usr/bin del target, non è una cartella. E' un file di tipo sconosciuto.
Ci vorrebbe un generatore di pacchetti .deb più facile da usare, con cui si potesse trasportare tutta la cartella del progetto, contenente i file necessari e l'eseguibile, in una zona non protetta del target.
La discussione è comunque terminata con successo, perché ho imparato a mostrare i permessi e a modificarli.
Ciao

38
Grazie! Finalmente vedo tutto più chiaro. Inoltre, come ho scritto poco fa nell'altra discussione - per puro caso contemporanea - di problemi tecnici, stanotte ho avuto un'illuminazione: ho capito che l'application.path dà la cartella del progetto in ambiente ide, mentre in run-time del programma installato dà /usr/bin. Per mia ulteriore vergogna, questo l'avevo già visto due mesi fa, ma non ci avevo dato peso.
Ora quindi io proverò a scrivere:

  sAppPath = Application.Path
  If Right(sAppPath, 6) <> "lexcoc" Then
    sAppPath = sAppPath & "/lexcoc"
  Endif
  Chmod sAppPath To "rwxr-xrwx"
  With Stat(sAppPath).Perm
    Label7.Text = "Dir. appl.: " & sAppPath & "  Permessi: " & .User & "-" & .Group & "-" & .Other
  End With

Ed ecco che cosa ottengo:
Dir. appl.:  /home/coc2/lexcoc Permessi: rwx-rx-rwx
che è proprio quello che volevo.
Ma tra poco saprò se tutto funziona dopo l'installazione. Magari non ci sarà bisogno nemmeno di modificare i permessi.
Ciao

39
Caspita! Sui permessi è la prima spiegazione chiara che vedo. Tra l'altro chiama 'proprietario' quello che gli altri chiamano user, il che mi chiarisce meglio le idee. Mi sono messo tutto nel segnalibri.
Per di più stanotte ho visto la luce che due mesi fa, non so come, il mio subconscio o il mio superio non voleva vedere: sotto la ide di gambas l'application.path è .../lexcoc (cioè la cartella del progetto), ma col programma installato l'application.path è /usr/bin, dove è chiaro che nemmeno il proprietario del sistema può mettere le mani. Credo che questo risolva tutto... o quasi.
Vi faccio sapere.

40
Va bene, giochiamo pure, ma io intanto vorrei capire. Ho scritto così:
  Chmod sAppPath To "rwx-rx-rwx"
  Label7.Text = "Dir. appl.: " & sAppPath & "  Permessi: " & Stat(sAppPath).Perm.User & "-" & Stat(sAppPath).Perm.Group & "-" & Stat(sAppPath).Perm.Other
E sai che cosa ho ottenuto?
Questo:  Dir. appl.:  /home/coc2/lexcoc Permessi: rwx-x-x
Come è possibile?
Poi ho cambiato il comando Chmod in Chmod sAppPath To "rwxr-rwxr-rwxr" (non so che vuol dirre la r finale) e ho ottenuto:
Dir. appl.:  /home/coc2/lexcoc Permessi: rwx-rx-x
Quando avrò capito, se mi spieghi tutto ;), vorrei sapere ancora come si cambia il proprietario. Grazie

41
Ehi, sto parlando del cosidetto wizard che viene lanciato con il comando "progetto/crea/pacchetto d'installazione". Non è propriamente un testo. Diciamo la schermata n. 8 intitolata "extra files".
Comunque ho ripetuto ancora la creazione del pacchetto .dev di lexcoc, dopo aver inserito in una label del form principale la directory dell'applicazione (Application.Path), per essere sicuro che il percorso finale del programma sul target sia proprio /usr/bin.
A me sembra che, ricevendo un messaggio di "access forbidden" al momento dell'apertura dell'unico file in scrittura, l'utente che gioca con lexcoc non ne sia proprietario o non sia autorizzato alla scrittura. Ma il mancato permesso di scrittura mi pare escluso da questo che vedo:
-rwxr-xr-x 1 root root 48618 ago  8 13:03 lexcoc
che ho ottenuto sul computer target col comando ls lexcoc -l (lexcoc sta proprio in /usr/bin).
Avrei bisogno di qualcuno che mi spiegasse esattamente il significato di questa riga, in particolare "root root 48618".
Inoltre vorrei sapere se esistono delle istruzioni per modificare i permessi e, magari, il proprietario.
Purtroppo sono ancora abbastanza ignorante di linux e di gambas.
Ciao

42
Salve. Vorrei mostrare in una label i permessi di una directory e poi modificarli. Non so se è possibile.
Per esempio vorrei poter scrivere:

sAppPath = Application.Path
Label1.Text = "Dir. appl.: " & sAppPath & "  Permessi: " & Stat.Perm(sAppPath)

Purtroppo Stat.Perm(sAppPath) non è una stringa, ma una classe virtuale.
Come si fa?

E poi vorrei sapere se è possibile modificare a programma questi permessi. Grazie

43
Purtroppo niente da fare. Ho provato con il mio progetto "lexcoc", dove ho pochi file: due immagini jpg e un file di testo.
Si fermava sull'apertura del file in creazione. Mi è sembrato che forse l'apertura in 'Create' non fosse adeguata. Allora ci ho messo prima un domanda per sapere se il file esistesse e nel caso lo elimina. Ma il programma si è fermato sempre lì. E comunque prima di fare creazione del pacchetto di installazione ho eliminato il file. Più semplice di così...
Ora è tardi. Domani ci metto anche qualcosa d'altro.
Comunque grazie per l'idea.
Ciao

44
Vuoi dire cambiare i permessi nei file che stanno nella cartella del progetto? Ora ci provo: devo dare permessi di lettura ed eventuale scrittura a tutti! Se funziona, e non avrò bisogno degli 'extra files', è l'uovo di Colombo! Grazie.

45
Progetti degli utenti / Re: solitgio - solitario di giovanna
« il: 06 Agosto 2015, 19:54:10 »
Sono sempre io. Purtroppo c'erano slcune bug che ho corretto. Chiedo venia
Metto qui la versione corretta.
Oggi, 15 agosto 2015, sostituisco il file solitgio-0.0.1.tar.gz con il nuovo solitgio-0.0.2.tar.gz aggiornato per ottenere un pachetto .deb e una installazione correta.
Ciao

Pagine: 1 2 [3] 4 5 ... 9