Autore Topic: Sono proprio alle prime armi  (Letto 972 volte)

Offline marco2265

  • Gamberetto
  • *
  • Post: 4
    • Mostra profilo
Sono proprio alle prime armi
« il: 27 Novembre 2011, 16:46:20 »
Premessa: 46 anni; piccola vecchia passione per il basic (quello dello ZX81) ma una giustà volontà di capire.

Ho provato varie volte a leggere alcune cose di Gambas ma sempre arenandomi molto facilmente. Mi diletto a stampare fatture di una società senza fine di lucro, il tutto con Calc. Ho la certezza che Gambas sia in grado di fare tutto meglio ma il problema è che non riesco proprio a partire.

Il mio file Calc è così composto

NOME | ETA' | LUOGO
Piero | 12 | Vercelli
Anna | 10 | Novara
Luisa |18 | Torino
... |...

Ecco la richiesta:

Devo poter scegliere in una ComboBox uno dei nomi (sono un centinaio) ed in un TextBox mi deve dare l'ETA' ed in un altro TextBox il LUOGO.

Sono solo riuscito ad inserire i Nomi nel combo, ma uno per volta, ma sono sicuro che non è la scelta migliore.

Grazie a chiunque voglia darmi una mano.

Offline marco2265

  • Gamberetto
  • *
  • Post: 4
    • Mostra profilo
Re: Sono proprio alle prime armi
« Risposta #1 il: 27 Novembre 2011, 17:41:23 »
Per chiarire:

Come devo salvare il file che adesso è un file calc?

Come  faccio a farlo prendere in carico da Gambas?

Come lo richiamo in un ComboBox?


Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: Sono proprio alle prime armi
« Risposta #2 il: 27 Novembre 2011, 20:44:24 »
sicuramente lavorare direttamente da un foglio di calc non è il massimo per comodità, comunque se la tu aesigenza lo impone, e quindi quei dati non li puoi trasferire su un db...

puoi proceder ein questo modo:

salvi il file di calc in formato cvs con marcatori il carattere | (se gia aprendolo con un editor di testo è così formattato puoi evitarlo)

a questo punto carichi in memoria il file con


Codice: [Seleziona]
myfile=file.open(percorso)

ora andrai a leggere riga per riga i vari dati e porrai ilnome in un array , l' età in un altro e il luogo in un altro ancora

Codice: [Seleziona]
private nome,luogo as new string[]
private eta as new integer []



dim righe,riga as new string[]

righe= split(myfile,"\n","&",true)

for each righe
  riga=split(righe[i],"|","&",true)
  nome.add(riga[0])
  eta.add(riga[1])
  luogo.add(riga[2])
  inc i
next

combobox1.list=nome

quando selezionerai un nome dalla combo potrai rilevare gli altri due valori con:


Codice: [Seleziona]
public sub combobox1_click()

dim i as integer

  i=combobox1.index
 textbox1.text= eta[i]
 textbox2.text= luogo[i]
end

naturalmente questo è solo un modo per realizzare cio che chiedi, avresti potuto usare una classe o un altro metodo dettato dalla tu afantasia

naturalmente sono solo stralci di codice occhi alla dichiarazzione delle variabili , distinguendo da quelle pubbliche a quelle private






« Ultima modifica: 27 Novembre 2011, 20:48:18 da fsurfing »

Offline marco2265

  • Gamberetto
  • *
  • Post: 4
    • Mostra profilo
Re: Sono proprio alle prime armi
« Risposta #3 il: 28 Novembre 2011, 20:45:27 »
Citazione
e quindi quei dati non li puoi trasferire su un db

Adesso li ho in calc, ma trasferirli in un db credo che non sia impossibile per me. (credo)

Citazione
salvi il file di calc in formato cvs con marcatori il carattere |

Il carattere | non è presente ma credo che basta sostituirlo alla riga
Codice: [Seleziona]
riga=split(righe[i],"|","&",true)
con cosa adopererò.

Citazione
a questo punto carichi in memoria il file con
Codice: [Seleziona]
myfile=file.open(percorso)

FERMO: sono già fermo.
Il file è salvato in /home/marco/Modelli/Gambas/Lista.csv
Ho provato:
myfile=file.open(Lista.csv)
myfile=file.open("Lista.csv")
myfile=file.open(/home/marco/Modelli/Gambas/Lista.csv)
myfile=file.open("/home/marco/Modelli/Gambas/Lista.csv")

Ho provato ognuna di queste possibilità sia tra PUBLIC SUB _new() -END; sia tra PUBLIC SUB Form_Open() - END ma senza successo

Ho provato a caricare anche il file in Dati per farlo riconoscere, ma sempre l'esecuzione mi restituisce errore.

Credo di mettere a dura prova la tua pazienza.

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: Sono proprio alle prime armi
« Risposta #4 il: 28 Novembre 2011, 21:28:38 »
in effetti non è file.open bensi  file.load :)


se vuoi qui sotto trovi i sorgenti funzionanti della spiegazione di ieri

Offline marco2265

  • Gamberetto
  • *
  • Post: 4
    • Mostra profilo
Re: Sono proprio alle prime armi
« Risposta #5 il: 28 Novembre 2011, 21:48:56 »
Ed io che avevo quasi vergogna a chiedere ....  :-[

Grazie mille del file: lavorerò sicuramente su quello

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: Sono proprio alle prime armi
« Risposta #6 il: 28 Novembre 2011, 21:52:43 »
non bisogna mai avere vergogna di chiedere :)

del resto abbiamo tutti iniziato in un qualche modo,


Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.255
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: Sono proprio alle prime armi
« Risposta #7 il: 02 Dicembre 2011, 10:31:35 »
Premessa: 46 anni; piccola vecchia passione per il basic (quello dello ZX81) ma una giustà volontà di capire.

Ho provato varie volte a leggere alcune cose di Gambas ma sempre arenandomi molto facilmente. Mi diletto a stampare fatture di una società senza fine di lucro, il tutto con Calc. Ho la certezza che Gambas sia in grado di fare tutto meglio ma il problema è che non riesco proprio a partire.

Il mio file Calc è così composto

NOME | ETA' | LUOGO
Piero | 12 | Vercelli
Anna | 10 | Novara
Luisa |18 | Torino
... |...

Ecco la richiesta:

Devo poter scegliere in una ComboBox uno dei nomi (sono un centinaio) ed in un TextBox mi deve dare l'ETA' ed in un altro TextBox il LUOGO.

Sono solo riuscito ad inserire i Nomi nel combo, ma uno per volta, ma sono sicuro che non è la scelta migliore.

Grazie a chiunque voglia darmi una mano.

welcome to gambas's world!!