Autore Topic: Circa i percorsi di file e directory  (Letto 1241 volte)

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.243
  • Tonno verde
    • Mostra profilo
Circa i percorsi di file e directory
« il: 13 Marzo 2014, 22:00:55 »
Vorrei mettere se ci riesco alcuni punti fermi riguardo i percorsi:

I percorsi assoluti sono quelli che iniziano con il carattere “/” oppure “~” e non si devono usare nei nostri programmi Gambas3 perché poi andrebbero persi all'atto della compilazione.

Per i nostri programmi Gambas3 dobbiamo usare i percorsi relativi quelli che iniziano con “~/” oppure con “User.Home” o anche “Application.Path”.

Be naturalmente prima di usare una cartella dell'user.home di uno sconosciuto futuro possibile utilizzatore di un  nostro programma occorrerà testare (“Exist”) che la cartella pardon directory ci sia e in caso negativo crearla (“Mkdir”) per poi andarci a infilare i nostri file.

Bene, ammesso che fino ad ora io abbia scritto cose corrette, ora iniziano i miei dolori perché la documentazione dice che i file che verranno compilati non potranno più essere manipolati rimarranno per quanti sforzi noi potremo tentare sempre e solo di, scusate il bisticcio, sola lettura.

Ne deduco che se io voglio dare all'utilizzatore anche directory e file queste non potranno essere inserite nella cartella dati dell'applicazione e poi copiate p. e.  nell'user.home ma dovranno essere impacchettate a parte.

Intanto questo è il primo quesito: Vanno impacchettate a parte?

Se quanto scritto prima è corretto, vale a dire nel mio programma uso p. e. la User.Home & “/.MiaDirNascosta” nel caso io apra il programma la prima volta testo che non ci sia “MiaDirNascosta” e quindi la creo ecc.
Ora mettiamo che l'utilizzatore apra un altro programma, se io avessi tutto all'interno del programma non ci sarebbero problemi perché si raddoppierebbe tutto, ma in Gambas3 non esiste il concetto di directory di lavoro corrente e così invece...

Qualche buon samaritano, ma anche un santo qualunque va bene, può un poco chiarirmi le idee?  :D

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.718
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Circa i percorsi di file e directory
« Risposta #1 il: 14 Marzo 2014, 03:05:21 »
In via generale segnalo anche queste due discussioni (che forse hai già letto):
http://www.gambas-it.org/smf/index.php?topic=2745.0
http://www.gambas-it.org/smf/index.php?topic=457.msg26627#msg26627



...ma anche un santo qualunque va bene,
Per quel che riguarda San Midi, lui si occupa solo di Midi


« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.243
  • Tonno verde
    • Mostra profilo
Re: Circa i percorsi di file e directory
« Risposta #2 il: 14 Marzo 2014, 12:17:40 »
In via generale segnalo anche queste due discussioni (che forse hai già letto):
http://www.gambas-it.org/smf/index.php?topic=2745.0
http://www.gambas-it.org/smf/index.php?topic=457.msg26627#msg26627

Ti ringrazio
La prima l'avevo già letta.
La seconda invece mi era sfuggita.


Citazione:
“Again, the absolute path means this is trying to save the real file
inside your source project.

Hope that helps”

...Ma quale speranza io mi suicido!  :o

Scusa tanto ma se Application.Path, User.Home, ~/ ,* e... (ce ne sono per caso altri?) sono percorsi relativi come è possibile che poi nelle risposte di M. Bruce questi diventino percorsi assoluti.

* Questi sono sicuramente percorsi relativi in quanto, se tradotti in percorsi assoluti, cambiano a seconda del computer su cui vengono usati (es. la mia User.Home darà gianluigi/home e la tua vuott/home e quella di Pippo pippo/home).

Oppure, e non mi stupirei, non ho capito un piffero (San Midi approverebbe la similitudine) di quello che ti ha risposto Bruce:rolleyes:

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Circa i percorsi di file e directory
« Risposta #3 il: 14 Marzo 2014, 15:49:35 »
In via generale segnalo anche queste due discussioni (che forse hai già letto):
http://www.gambas-it.org/smf/index.php?topic=2745.0
http://www.gambas-it.org/smf/index.php?topic=457.msg26627#msg26627

Ti ringrazio
La prima l'avevo già letta.
La seconda invece mi era sfuggita.


Citazione:
“Again, the absolute path means this is trying to save the real file
inside your source project.

Hope that helps”

...Ma quale speranza io mi suicido!  :o

Scusa tanto ma se Application.Path, User.Home, ~/ ,* e... (ce ne sono per caso altri?) sono percorsi relativi come è possibile che poi nelle risposte di M. Bruce questi diventino percorsi assoluti.

* Questi sono sicuramente percorsi relativi in quanto, se tradotti in percorsi assoluti, cambiano a seconda del computer su cui vengono usati (es. la mia User.Home darà gianluigi/home e la tua vuott/home e quella di Pippo pippo/home).

Oppure, e non mi stupirei, non ho capito un piffero (San Midi approverebbe la similitudine) di quello che ti ha risposto Bruce:rolleyes:

 :ciao:

In realtà Application.Path, User.Home, ~/ sono abbreviazioni di percorsi assoluti. Il primo indica dove si trova l'eseguibile del tuo codice in quel momento mentre gli altri due puntano alla home dell'utente.
Se hai una conoscenza media di GNU/Linux saprai che i software molto spesso si creano una cartella nascosta all'interno della home dell'utente in cui salvano i dati utili all'utente stesso. Con Gambas lo puoi tranquillamente fare anche perchè nessuno ti assicura che il tuo programma non venga collocato in una cartella in cui l'utente esecutore non abbia i permessi di scrittura.

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.243
  • Tonno verde
    • Mostra profilo
Re: Circa i percorsi di file e directory
« Risposta #4 il: 14 Marzo 2014, 17:53:37 »
Proprio adesso mi accorgo di essere stato promosso da gamberetto a gambero, spero che non sia a causa del fatto che i passi indietro nella comprensione di Gambas3 si sono fatti più lunghi.  ;D

Se hai una conoscenza media di GNU/Linux saprai che i software molto spesso si creano una cartella nascosta all'interno della home dell'utente in cui salvano i dati utili all'utente stesso.

Magari avessi una conoscenza media di Linux! Però all'inizio del post avevo argomentato con un User.Home & “/.MiaDirNascosta”...  ;)
Purtroppo il fatto è che non conosco le procedure per creare i pacchetti delle varie distribuzioni, ma neanche solo di Debian se è per quello, e quindi ho dei problemi a capire come mi devo muovere con il codice.
Dove devo collocare il Database?
Dove devo collocare le varie Directory?
Dove devo collocare i File con cui interagirò con l'utente?
Come faccio a darglieli intonsi?

Con Gambas lo puoi tranquillamente fare anche perchè nessuno ti assicura che il tuo programma non venga collocato in una cartella in cui l'utente esecutore non abbia i permessi di scrittura.

Scusa il rimbambimento ma cosa posso fare tranquillamente?
Poi mi parli di permessi, ma non è compito dell'amministratore di sistema dare all'utente un programma funzionante?
Come programmatore penso di dover solo controllare che tu utente possa leggerli e scriverli altrimenti ti avviso che se vuoi usare il programma devi farti cambiare i permessi. Onestamente io credevo che creando file e directory al momento del primo avvio...i permessi li avesse.
Tieni conto che io ho esperienza limitatissima di programmazione e solo all'interno di Office con VB e VBE.
Questi concetti per me sono assolutissimamente nuovi.
Gradirei inoltre molto approfondire (vedi oggetto) il significato di Percorso Relativo e Percorso Assoluto.
Tu dici

In realtà Application.Path, User.Home, ~/ sono abbreviazioni di percorsi assoluti. Il primo indica dove si trova l'eseguibile del tuo codice in quel momento mentre gli altri due puntano alla home dell'utente.

Però sono percorsi relativi, giusto? O mi sono perso qualcosa di importante e ho capito fischi per fiaschi e le premesse del primo post sono errate?  :-\

 :ciao:
(ex gamberetto che saluta in attesa di cortese riscontro)
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Circa i percorsi di file e directory
« Risposta #5 il: 14 Marzo 2014, 18:59:12 »
Purtroppo il fatto è che non conosco le procedure per creare i pacchetti delle varie distribuzioni, ma neanche solo di Debian se è per quello, e quindi ho dei problemi a capire come mi devo muovere con il codice.

Gambas crea i pacchetti per te. Non devi saperlo fare. Lo fa lui per te.


Dove devo collocare il Database?
Dove devo collocare le varie Directory?
Dove devo collocare i File con cui interagirò con l'utente?
Come faccio a darglieli intonsi?


Di che database parliamo? Se si parla di DB attivi (tipo MySQL o PostgreSQL) allora non devi collocarli da nessuna parte. Se parliamo di database in file tipo SQLite allora gli devi collocare da qualche parte dove l'utente possa legger e scrivere. Questo vale per tutti i file che devono essere modificati e/o letti.

Scusa il rimbambimento ma cosa posso fare tranquillamente?
Poi mi parli di permessi, ma non è compito dell'amministratore di sistema dare all'utente un programma funzionante?
Come programmatore penso di dover solo controllare che tu utente possa leggerli e scriverli altrimenti ti avviso che se vuoi usare il programma devi farti cambiare i permessi. Onestamente io credevo che creando file e directory al momento del primo avvio...i permessi li avesse.
Tieni conto che io ho esperienza limitatissima di programmazione e solo all'interno di Office con VB e VBE.
Questi concetti per me sono assolutissimamente nuovi.
Gradirei inoltre molto approfondire (vedi oggetto) il significato di Percorso Relativo e Percorso Assoluto.
Tu dici

Si parla di percorso assoluto quando definisci la strada da percorrere (per giungere in un file) partendo dal nodo più basso presente nell'albero. Ad esempio un percorso assoluto è "/home/utente/cartella_hard/video.avi".
Si parla di percorso assoluto quando definisci la strada da percorrere partendo dall'attuale posizione in cui si troa l'utente. Per esempio facendo finta che ci troviamo in una cartella chiamata "video_catechismo" presente nella cartella "/home/utente" allora per giungere al file dell'esempio precedente ci sposteremo con "../cartella_hard/video.avi"

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.243
  • Tonno verde
    • Mostra profilo
Re: Circa i percorsi di file e directory
« Risposta #6 il: 14 Marzo 2014, 22:57:37 »
...
Si parla di percorso assoluto quando definisci la strada da percorrere (per giungere in un file) partendo dal nodo più basso presente nell'albero. Ad esempio un percorso assoluto è "/home/utente/cartella_hard/video.avi".
Si parla di percorso assoluto quando definisci la strada da percorrere partendo dall'attuale posizione in cui si troa l'utente. Per esempio facendo finta che ci troviamo in una cartella chiamata "video_catechismo" presente nella cartella "/home/utente" allora per giungere al file dell'esempio precedente ci sposteremo con "../cartella_hard/video.avi"

Questo per me è già un passo avanti, perché finalmente ho capito (deve essere senz'altro merito dell'esempio molto realistico  ;D) che avevo confuso il significato di percorso relativo, il percorso relativo in Gambas3 è come in HTML “../”.

Io invece avevo erroneamente compreso che per Gambas3 ci si riferisse a User.Home, Application.Path o “~/” che invece sono rappresentazioni di percorsi assoluti ne più ne meno di gianluigi/home, si usano solo perché se usassi gianluigi/home questo funzionerebbe solo sul mio computer.

Bene grazie mille.  :ok:

Ora non ti adombrare se insisto con le altre domande:

Se ho capito quanto mi hai detto Gambas3 crea per me anche i pacchetti di File, Directory e File database SQLite che devo allegare al programma, io devo indicargli solo dove metterli, è così?

Il database sarebbe il meno perché  comunque lo creerei a mezzo codice ma gli altri file...

Mi puoi indicare dove posso studiare queste cose parlo di Compilazione, di creare Eseguibili, di creare Pacchetti Sorgenti e di installazione io non sono riuscito a trovare niente.

Mi potresti suggerire una soluzione là dove l'utente dovesse aprire due programmi?

E per quanto riguarda i permessi?

Lo so si sta andando un poco fuori tema e se credi apro un'altra discussione.

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro