Oppure

Loading
02/06/09 7:46
robinhood
Ciao Forum


ho ripreso un vecchio programma in vb5 di qualche anno fa e volevo un po
rinfrescarlo.
Questo mio programma usa un database fatto di Text Files.
Vi sono 3 'campi' formati da textbox
Nome.text
Cognome.text
Indirizzo.text
I files sono tutti salvati nella cartella APP.Path\Indirizzi ognuno con proprio nome.(.txt)
Posso salvare e rileggere questi Text Files senza problema e mostrarli nelle textbox.

Io volevo adesso che il contenuto di questi Text Files mi vengano mostrati in una
MSFLEXGRID.
Non il contenuto di un files soltanto , ma il programma dovrebbe leggere, premendo su un commbutton, tutta la directory APP.Path\indirizzi e quindi popolare la flexgrid con i dati di tutti i records.

Io ho naturalmente provato, pur non essendo pratico di flexgrid.
Ho provato cosi:


Msflexgrid1.textmatrix(1,1) = Nome.text
Msflexgrid1.textmatrix(1,2) = Cognome.text
Msflexgrid1.textmatrix(1,3) = Indirizzo.text

purtroppo questa routine mi mostra nella FlexGrid soltanto il record che ho caricato
tramite la routine di Load-save.
Io invece vorrei che tutti i records presenti in APP.PATH\indirizzi vengano insezriti nella flex.
In questo modo:

-----------------Nome Cognome Indirizzo
Nome File xxxxxx xxxxxxxx xxxxxxx
Nome File xxxxxx xxxxxxx xxxxxx
ecc.
Ovviamente anche inserendo nuovi files la flexgrid dovrebbe automaticamte aggiornarsi
Io suppongo che oltre alla flexgrid debba impostare un ciclo for/next di lettura, ma non vi riesco.
Puo aiutarmi qualcuno a migliorare la mia routine per ottenere quanto detto?
Grazie
RobinHood
se necessario posso postare il codice di Save-Load che uso per salvare i textFiles




Ultima modifica effettuata da robinhood 02/06/09 7:47
aaa
02/06/09 10:45
GrG
per sapere i file presenti nella cartella indirizzi ci sono vari modi... personalmente userei un filelistbox... poi con un ciclo for prendi ciascun file e lo carichi sulla msflexgrid...
se hai problemi dimmi cosa non sai fare
aaa
02/06/09 11:09
robinhood
Beh, in questo caso confesso non so proprio cosa fare, altrimenti avrei
postato un po di codice in piu !

Per ottenere quanto chiesto ho solo provato con quello postato
della flexgrid. Poca cosa, ma é La prima volta che ho usato quel controllo.
Dico anche che credevo di esserci riuscito, con quella piccola routine. Poi mi sono accorto che non caricava TUTTI i file come pensavo.
Diciamo che fino adesso , con la mia routine (che non ho postato)
creo dei file testo e li salvo con nome.
Insomma come sta la situazione un po di codice pratico sarebbe il benvenuto,
per caricare nella flex tutti i file presenti in APP.Path\Indirizzi
Qualunque sia il metodo (con filelist, e poi con flexgrid....)
(Se possibile, in modo da poter chiudere questo ,programma)

grazie per l'attenzione, GRG
robin hood
(ripeto se necessario posto la mia routine di creazione load-save
text file.)

Ultima modifica effettuata da robinhood 02/06/09 11:10
aaa
02/06/09 18:50
robinhood
Salve.
Usando un File ListBox , come consigliato da GRG, riesco adesso a visualizzare
tutti i TextFile della directory Frequenze.
Private Sub File1_Click()
Dim FileSelezione As String
FileSelezione = File1.Path & "" & File1.FileName
End Sub

Naturalmente uso anche un DirListBox per scegliere la giusta directory.

Adesso devo popolare la flexGrid completamente tramite il FileListBox ed un ciclo.
Puo qualcuno drmi una mano in questo senso ?
grazie
robinhood
Ultima modifica effettuata da robinhood 02/06/09 18:54
aaa
02/06/09 19:54
GrG
allora...
la proprietà file1.listcount restituisce il numero di righe presenti nella lista (ma parte da -1 il conteggio)
la proprietà file1.list(numero) restituisce la stringa presente alla riga numero. Quindi per fare un ciclo basta scrivere:
dim x as integer, file as string
for x = 0 to file1.listcount -1
file = file1.list(x)
'resto
next x


dove c'è "'resto" bisogna inserire il codice per aprire i file, leggerne il contenuto e inserirli nella msflexgrid...
hai detto già di avere un codice per leggere e salvare i files, però non so come lavora... quello che ti consiglierei è di aprire il file leggere riga per riga ed a ogni riga splittarla (usando come carattere separatore lo spazio) e inserirla nella msflexgrid...

per aprire i file devi usare la Open, altrimenti fammi vedere come lavora la tua istruzione load-save. Per inserire i dati in una msflexgrid basta dargli colonna, riga e testo...esempio:
msflexgrid1.col = 1
msflexgrid1.row = 1
msflexgrid1.text = "ciao"


Scriverai così nella riga 1 della prima colonna ciao
aaa
02/06/09 20:08
robinhood
Grazioe dell'intervento.
Per chiarezza ti scrivo pure il mio codice che uso per load-save il file testo, cosi avrai tutto chiaro

Private Type MyFile
Text1  As String
Text2 As String
Text3 As String
End Type
 
Public Sub LoadFile(FileName As String)
Dim File As Long
Dim Bestand As MyFile

File = FreeFile
Open FileName For Binary Access Read As #File
Get #File, , Bestand
Close #File
Nome.Text = Bestand.Text1
Cognome.Text = Bestand.Text2
Indirizzo.Text = Bestand.Text3

End Sub

Public Sub SaveText(FileName As String)
Dim File As Long
Dim Bestand As MyFile
Bestand.Text1 = Nome.Text
Bestand.Text2 = Cognome.Text
Bestand.Text3 = Indirizzo.Text
File = FreeFile
Open FileName For Binary Access Write As File
Put #File, , Bestand
Close #File
End Sub


Sto leggendo le tue indicazioni per il ciclo.
Il fatto di splittare non l'ho ben capito
Perdonami se ritornero' ancora, ma come detto é la prima volta con la flex.
Domani testero' il tutto.
Volevo solo ripetere che io dopo mostrato i files testi tutti, nella filelistbox,
il mio scopo é visionare TUTTI i files contemporaneamente nella flex.
Quindi anche i titoli dovranno stare al posto giusto.
Se hai ancora qualche indicazione puoi dramela. Io domani testero' i tuoi consigli e poi vedremo;
grazie
robinhood
Ultima modifica effettuata da robinhood 02/06/09 20:13
aaa
02/06/09 20:17
GrG
i file txt come sono strutturati?
in questo modo:
xxx xxx xxx
xxx xxx xxx
ecc...

???
aaa
02/06/09 20:51
robinhood
Si, esattamente

xxx xxx xxx
xxx xxx xxx
quindi la flex dovrebbe mostrali cosi

Nome Cognome indirizzo
Nomefile xxx xxx xxx
Nomefile xxx xxx xxx
...
....
per uno che non ha mai lavorato con questo controllo
credo non sia semplice

robinh

Ultima modifica effettuata da robinhood 02/06/09 20:52
aaa