Oppure

Loading
18/06/11 10:22
riddick
Salve, ci sono molte discussioni in merito, ma non ho trovato quella che serviva a me. In pratica vorrei prendere la prima riga del file e metterla in una textbox e poi tutto il resto in un'altra textbox. Come dovrei fare?
aaa
18/06/11 12:27
Poggi Marco
Ciao!

Hai problemi con la lettura/scrittura dei file di testo?
Qui spiega come aprire i file: qbasicnews.com/qboho/…
aaa
18/06/11 12:32
riddick
ok grazie ho risolto ;)
aaa
18/06/11 13:44
gibra
Spiega come hai fatto,
Lo spirito di un forum è quello di condividere soluzioni.
Ultima modifica effettuata da gibra 18/06/11 13:50
aaa
18/06/11 14:33
riddick
Postato originariamente da gibra:

Spiega come hai fatto,
Lo spirito di un forum è quello di condividere soluzioni.


Giusto!
allora ho letto il file riga per riga e l'ho messo in un array...poi ho fatto stampare il primo elemento dell'array in un textbox e il resto in un'altro text box...così:
Open filepath For Input Access Read Lock Read As #1
    Do While Not EOF(1)
        ReDim Preserve arr(i) As String
        Line Input #1, linea
        arr(i) = linea
        i = i + 1
        Text1.Text = arr(0)
        Text2.Text = linea
    Loop
Close #1

aaa
18/06/11 16:13
gibra
Non ho capito bene perchè la valorizzazione dei textBox è dentro al loop.
Non avevi scritto che volevi caricare in un textBox solo la prima riga, mentre tutto il resto in un'altra textBox?

Comunque puoi anche fare meglio: ;)

Ad esempio, dopo averlo aperto, puoi caricare tutto il contenuto in un colpo solo e metterlo in una variabile, il che è sicuramente più veloce e performante di un loop che legge ogni singola riga.

Tra l'altro ti suggerisco di usare la modalità Binary invece che Input perchè se il file contiene caratteri particolari, potresti ricevere un errore 62 - Input oltre la fine del file, ed in ogni caso con Binary non avrai mai problemi.

Ecco il codice che ti suggerisco:

Dim fnum As Integer
Dim sContents as String
Dim arr() As String

Rem Ottengo il primo numero libero per il file.
fnum = FreeFile() 
Open filepath For Binary Access Read Lock Read As #fnum

Rem Carico tutto il contenuto del file in una variabile
sContents = Input(LOF(fnum), fnum)

Rem Poi uso Split per ottenere l'array
arr = Split(sContents, vbCrLf)

Rem ora valorizzo i 2 Textbox
Text1.Text = arr(0)
Text2.Text = Replace(sContents, arr(0), "")



HTH
:)
aaa
18/06/11 18:25
riddick
E' stata l'unica soluzione che ho trovato^^
Avevo messo la valorizzazione nel text box perché così ogni riga letta la aggiungeva alla textbox...sapevo che comunque era un metodo un pò spartano per risolvere...però funge e quindi non mi sono addentrato in un miglioramento ^^
Grazie mille comunque...
aaa