Autore Topic: Esplora risorse con Gambas 2.19  (Letto 794 volte)

Offline fankegiu

  • Gamberetto
  • *
  • Post: 2
    • Mostra profilo
Esplora risorse con Gambas 2.19
« il: 23 Luglio 2012, 17:01:51 »
Ciao a tutti,
mi chiamo Giulio, sono nuovo e mi avvicino a Gambas per auto-imposizione di imparare a vivere nel mondo Linux-based (altrimenti il grande passo da Win a Linux non si fa mai, è come avere una macchina col cambio automatico e sequenziale, va a finire che il sequenziale non lo usi mai  ;D)
Ho provato a spulciare, tramite la funzione cerca, tutto il forum ma non ho trovato quello che cercavo e che concettualmente è abbastanza semplice (magari ho cercato male io).
Sto cercando di fare una sorta di file manager tipo "Esplora Risorse" utilizzando il componente FileView, in modo che questo, una volta fatto un clic sul file selezionato, lo apra col programma di default. Esempio: metto nel form il componente FileView con la path settata sui documenti (/home/giulio/Documenti) e questo mi visualizza perfettamente i file non nascosti al suo interno. Ma per aprire uno di questi file tramite clic? Ho provato una cosa del genere:
PUBLIC SUB FileView1_Click()
DIM hfile AS String
hfile = File.Open ("/home/giulio/Documenti")

Ma in fase di debugging mi dice che il file è una directory. Legittimo, perchè gli ho detto erroneamente di aprire una directory, ma dicendogli
hfile = File.Open ("hfile")
l'errore è che ciò che cerco non esiste.
Vi ringrazio infinitamente sin da subito per l'aiuto, sto sviluppando questo programmino per introdurre mia nonna al mondo dei computer, e visto che dubito che sappia avventurarsi nell'interfaccia completa di Ubuntu ecco che mi è venuta l'idea. Fatemi sapere, grazie mille!  :)  

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Esplora risorse con Gambas 2.19
« Risposta #1 il: 23 Luglio 2012, 18:05:09 »
Se hai trovato come ritornarti il file selezionato sei a buon punto.

Nel caso di apertura file, devi prima capire che tipo è il file in questione, e se questo esiste.

In Gambas ci sono molte funzioni per testare il filesystem...

Con Exist("filename") puoi capire se il file esiste.
Con File.Load("filename") puoi caricare file di testo non molto grandi in una variabile String.
Con le keyword OPEN, READ, ecc., puoi leggere un file byte x byte, o per riga di testo.
Con Picture.Load("filename") puoi caricarti file immagine (sono ammessi solo alcuni tipi di file immagine, vedi documentazione).

Riguardo alla lettura di file diversi, devi capire di che tipo sono. Solo alcuni possono essere letti e rappresentati direttamente con Gambas, altrimenti devi usare programmi esterni, magari avviandoli dall'interno di Gambas.


Un'ultima cosa: perchè hai Gambas 2.19? E' ormai un pò datato...

Offline fankegiu

  • Gamberetto
  • *
  • Post: 2
    • Mostra profilo
Re: Esplora risorse con Gambas 2.19
« Risposta #2 il: 23 Luglio 2012, 18:29:37 »
Se hai trovato come ritornarti il file selezionato sei a buon punto.

Nel caso di apertura file, devi prima capire che tipo è il file in questione, e se questo esiste.

In Gambas ci sono molte funzioni per testare il filesystem...

Con Exist("filename") puoi capire se il file esiste.
Con File.Load("filename") puoi caricare file di testo non molto grandi in una variabile String.
Con le keyword OPEN, READ, ecc., puoi leggere un file byte x byte, o per riga di testo.
Con Picture.Load("filename") puoi caricarti file immagine (sono ammessi solo alcuni tipi di file immagine, vedi documentazione).

Riguardo alla lettura di file diversi, devi capire di che tipo sono. Solo alcuni possono essere letti e rappresentati direttamente con Gambas, altrimenti devi usare programmi esterni, magari avviandoli dall'interno di Gambas.


Un'ultima cosa: perchè hai Gambas 2.19? E' ormai un pò datato...

Ti ringrazio infinitamente per la risposta, ma penso di aver trovato un metodo alternativo abbastanza adatto a ciò che voglio fare... In pratica ho modificato le preferenze delle cartelle di Ubuntu facendo sì che i files nel File Manager dell'OS vengano aperti con un solo click dal programma di default (es. il file "pippo.odt" una volta cliccato viene aperto da OpenOffice) e nel form del programmino di Gambas ho semplicemente inserito un Button per ogni cartella che voglio far aprire all'utente col comando Desktop.Open; uno per i documenti ("Desktop.Open "/home/giulio/Documenti") uno per le immagini e così via, e poi da lì l'utente si apre il file che vuole e quando vuole far altro semplicemente chiude la cartella. Solo che, così facendo, il programma che era in Fullscreen=True, una volta che si apre il File Manager di Ubuntu, mostra le due barrette di sistema, com'è ovvio che sia, ma non dà troppo fastidio. Non avevo troppa voglia di usare l'astrusissimo Embedder per integrare programmi terzi, quindi ho ripiegato per questa soluzione, ignorantissima ma efficace. E poi, da quanto ho capito, non è possibile dire al compiler di usare una variabile con la quale aprire tutti i files tramite programma predefinito, ma solo vedere caso per caso se il file esiste e di che tipo è... Quindi anche se la soluzione è un po' "sporca" in definitiva può andare.
Uso Gambas 2.19 perchè ho Ubuntu 10.04 (l'unico col quale funziona il chipset della mia scheda audio) e ho trovato quello nel repo, anche se non escludo di installare il 3 quanto prima  :)
Grazie mille comunque per la risposta, se avessi altri interrogativi su Gambas o se sapessi cose che qualche utente chiede (dubito) non esiterò a postare! Saluti e buona serata  :ciao: