Autore Topic: [UBUNTU].sh,.so e descrizione  (Letto 2791 volte)

Offline Stopped

  • Gamberetto
  • *
  • Post: 17
    • Mostra profilo
Re: [UBUNTU].sh,.so e descrizione
« Risposta #15 il: 02 Febbraio 2009, 17:03:06 »
grazie fsurfing della pazienza ma è sorto un'altro problema...:)
Il mio scopo è quello di aggiungere ad un file una righa ma non riesco.
ci sono 7 opzioni con sette righe da scrivere,io volevo far in modo che posso attivare una o piu opzioni insieme...

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: [UBUNTU].sh,.so e descrizione
« Risposta #16 il: 02 Febbraio 2009, 17:53:02 »
spiegati meglio

che tipo di file è?

se è un file di testo non è un problema

se il file in questione è un file per il settaggio della tua applicazione ti consiglio di usare il componente gb.settings

Offline Stopped

  • Gamberetto
  • *
  • Post: 17
    • Mostra profilo
Re: [UBUNTU].sh,.so e descrizione
« Risposta #17 il: 02 Febbraio 2009, 18:10:21 »
è un file .cfg...io ho sette opzioni e volevo far si che posso o attivare una sola opzione,o 2,o 3,... fino a sette contemporaneamente...

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: [UBUNTU].sh,.so e descrizione
« Risposta #18 il: 02 Febbraio 2009, 20:25:06 »
se le varie opzioni vengono attivate /disattivate semplicemente tramite l' inserimento di un commento ad inizio riga puoi usare qualcosa del genere

dim hstring as string
dim righe as string[]

file.load(percorsofile)'carichi il file

'dividi le varie righe

righe=split(hstring, "\n","  ",true )

ora nell' array righe avrai il tuo file suddiviso in righe che puoi abilitare con ad esempio il carattere #

mettiamo che vuoi commentare la terza righa:


dim riga as string

riga=righe[2] 'ricordati che l' indice dell array inizia da zero

riga="#" & riga
righe.fill(riga,2,1)
'ora devi salvare la modifica nel file

hstringa=""
for i=0 to righe.count-1
  hstringa=hstringa & "\n"
next

file.save(hstringa,percorsofile)

Offline Stopped

  • Gamberetto
  • *
  • Post: 17
    • Mostra profilo
Re: [UBUNTU].sh,.so e descrizione
« Risposta #19 il: 03 Febbraio 2009, 15:39:51 »
io avevo fatto cosi:
Codice: [Seleziona]
IF CheckBox1.Value = TRUE       SHELL "echo opzione_1>> file.cfg"       END IF 
IF CheckBox2.Value = TRUE       SHELL "echo opzione_2>> file.cfg"       END IF  
IF CheckBox3.Value = TRUE       SHELL "echo opzione_3>> file.cfg"       END IF
IF CheckBox4.Value = TRUE       SHELL "echo opzione_4>> file.cfg"       END IF
IF CheckBox5.Value = TRUE       SHELL "echo opzione_5>> file.cfg"       END IF
IF CheckBox6.Value = TRUE       SHELL "echo opzione_6>> file.cfg"       END IF
IF CheckBox7.Value = TRUE       SHELL "echo opzione_6>> file.cfg"       END IF

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: [UBUNTU].sh,.so e descrizione
« Risposta #20 il: 03 Febbraio 2009, 17:41:17 »
in gambas come in altri linguaggi ci sono molti modi di fare le stesse cose

l' importante è usarne uno che ti piaccia e ti soddisfi appieno

personalmente non mi piace usare troppo la schell ..sarebbe come ammettere che quell' operazione non riesco a farla con quello che offre il linguaggio gambas.

Non so esattamente quello che devi fare ma se il file di configurazione che devi modificare è relativo al tuo programma gambas, quindi lo puoi realizzare a tuo piacimento è molto + elegante utilizzare il componente gb.settings creato appositamente per gestire i file di configurazione della propria applicazione

esempio

devo salvare le opzioni scelte in file?:
Codice: [Seleziona]
 
PUBLIC SUB Button1_Click()

'salvataggio opzioni

 Settings["opzioni/1"] = CheckBox1.Value
 Settings["opzioni/2"] = CheckBox2.Value
 Settings["opzioni/3"] = CheckBox3.Value
 Settings["opzioni/4"] = CheckBox4.Value
 Settings["opzioni/5"] = CheckBox5.Value
 Settings["opzioni/6"] = CheckBox6.Value
 Settings["opzioni/7"] = CheckBox7.Value
 


  Settings.Save

END

devo caricare le opzioni?:

Codice: [Seleziona]

PUBLIC SUB Button2_Click()

'caricamento opzioni

 CheckBox1.value = Settings["opzioni/1", -1]
 CheckBox2.value = Settings["opzioni/2", -1]
 CheckBox3.value = Settings["opzioni/3", -1]
 CheckBox4.value = Settings["opzioni/4", -1]
 CheckBox5.value = Settings["opzioni/5", -1]
 CheckBox6.value = Settings["opzioni/6", -1]
 CheckBox7.value = Settings["opzioni/7", -1]
 
END
 


il file di configurazione viene salvato in

home/tuonome/.config/gambas/nometuaapplicazione.conf

ricordati di abilitare il componente gb.settings prima di uasare questo codice

Offline Stopped

  • Gamberetto
  • *
  • Post: 17
    • Mostra profilo
Re: [UBUNTU].sh,.so e descrizione
« Risposta #21 il: 03 Febbraio 2009, 21:18:06 »
non hai capito...io volevo modificare un file che non centra nulla con gambas..

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: [UBUNTU].sh,.so e descrizione
« Risposta #22 il: 03 Febbraio 2009, 23:16:25 »
In effetti, leggendo questa discussione, non è ben chiaro il concetto...

Se ho capito qualcosa, forse il nostro amico vuole aggiungere una riga di testo ad un file esistente (o altrimenti crearlo e poi aggiungere).
Questo lo si può fare in svariati modi:

a) usare i metodi statici della classe File di Gambas;
b) usare i comandi OPEN, READ, WRITE, CLOSE, sempre di Gambas;
c) usare una SHELL, inviando idonei comandi.

Come ha detto fsurfing, solo se nessuna delle funzionalità di Gambas ha la possibilità di fare una determinata operazione, allora si ricorre ad una chiamata al sistema operativo (vedi SHELL o EXEC).

Se invece vuoi aggiungere file (come ho visto da alcuni esempi in questa discussione) ad un file compresso (es. uno zip), allora la questione è più complessa, ovvero: decomprimere l'eventuale file esistente in una directory temporanea; aggiungere il nuovo file a questa directory, comprimere il tutto nuovamente.
Anche in questo caso si hanno due alternative:

a) usare la classe Compress di Gambas;
b) usare il comando SHELL per eseguire l'apposito programma di compressione.

Nel primo caso, la classe Compress non è compatibile con tutti i formati di compressione; nel secondo caso, è necessario essere sicuri che il programma desiderato esista, e sapere anche che parametri usare per l'operazione.
Sempre nel secondo, occorre conoscere un poco di shell scripting (di norma si usa bash), altrimenti le cose diventano molto complicate.
L'esecuzione di una serie di comandi in bash, può essere fatta, dichiarando sulla stessa riga tutta la sequenza dei comandi da eseguire, separati da un punto e virgola (;). Se non si verificano errori, i comandi vengono eseguiti tutti in sequenza, altrimenti l'esecuzione si blocca sul comando che ha provocato l'errore.
Un esempio:
Codice: [Seleziona]

SHELL "cd /tmp; ls -la; cd $HOME"

vengono esesuiti tre comandi: spostamento nella directory /tmp di sistema, lista dei file presenti nella directory, ritorno alla directory utente.
L'ultimo comando determina il valore di ritorno (o codice di errore) dell'intera operazione, gli altri vengono persi.

Offline Stopped

  • Gamberetto
  • *
  • Post: 17
    • Mostra profilo
Re: [UBUNTU].sh,.so e descrizione
« Risposta #23 il: 04 Febbraio 2009, 16:34:53 »
ora il mio obbiettivo è aggiungere a un file esistente(esterno da gambas) delle opzioni(7 per la precisione),però voglio far si che posso sia attivare o 1 o 2 contemporaneamente,etc fino a un numero di 7 comtemporaneamente

  • Visitatore
Re: [UBUNTU].sh,.so e descrizione
« Risposta #24 il: 04 Febbraio 2009, 16:56:08 »
azz certo che ne avete di pazienza  :-o

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: [UBUNTU].sh,.so e descrizione
« Risposta #25 il: 04 Febbraio 2009, 18:50:47 »
se ci posti il file in questione e il tipo di righa/e che vuoi aggiungere la soluzione potrebbe essere migliore

Offline Stopped

  • Gamberetto
  • *
  • Post: 17
    • Mostra profilo
Re: [UBUNTU].sh,.so e descrizione
« Risposta #26 il: 04 Febbraio 2009, 20:21:58 »
il file è questo è allegato

Offline Stopped

  • Gamberetto
  • *
  • Post: 17
    • Mostra profilo
Re: [UBUNTU].sh,.so e descrizione
« Risposta #27 il: 06 Febbraio 2009, 22:30:36 »
up

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: [UBUNTU].sh,.so e descrizione
« Risposta #28 il: 06 Febbraio 2009, 23:37:39 »
Non c'è bisogno di uppare le tue stesse discussioni se sei stato tu l'ultimo a rispondere...