Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - CommonDialog Apri file
Forum - Visual Basic 6 - CommonDialog Apri file

Avatar
riddick (Normal User)
Rookie


Messaggi: 37
Iscritto: 17/06/2011

Segnala al moderatore
Postato alle 12:22
Sabato, 18/06/2011
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?

PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 14:27
Sabato, 18/06/2011
Ciao!

Hai problemi con la lettura/scrittura dei file di testo?
Qui spiega come aprire i file: http://www.qbasicnews.com/qboho/qckopen.shtml

PM Quote
Avatar
riddick (Normal User)
Rookie


Messaggi: 37
Iscritto: 17/06/2011

Segnala al moderatore
Postato alle 14:32
Sabato, 18/06/2011
ok grazie ho risolto ;)

PM Quote
Avatar
gibra (Normal User)
Pro


Messaggi: 155
Iscritto: 16/04/2009

Segnala al moderatore
Postato alle 15:44
Sabato, 18/06/2011
Spiega come hai fatto,
Lo spirito di un forum è quello di condividere soluzioni.

Ultima modifica effettuata da gibra il 18/06/2011 alle 15:50
PM Quote
Avatar
riddick (Normal User)
Rookie


Messaggi: 37
Iscritto: 17/06/2011

Segnala al moderatore
Postato alle 16:33
Sabato, 18/06/2011
Testo quotato

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ì:
Codice sorgente - presumibilmente VB.NET

  1. Open filepath For Input Access Read Lock Read As #1
  2.     Do While Not EOF(1)
  3.         ReDim Preserve arr(i) As String
  4.         Line Input #1, linea
  5.         arr(i) = linea
  6.         i = i + 1
  7.         Text1.Text = arr(0)
  8.         Text2.Text = linea
  9.     Loop
  10. Close #1



PM Quote
Avatar
gibra (Normal User)
Pro


Messaggi: 155
Iscritto: 16/04/2009

Segnala al moderatore
Postato alle 18:13
Sabato, 18/06/2011
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:

Codice sorgente - presumibilmente VB.NET

  1. Dim fnum As Integer
  2. Dim sContents as String
  3. Dim arr() As String
  4.  
  5. Rem Ottengo il primo numero libero per il file.
  6. fnum = FreeFile()
  7. Open filepath For Binary Access Read Lock Read As #fnum
  8.  
  9. Rem Carico tutto il contenuto del file in una variabile
  10. sContents = Input(LOF(fnum), fnum)
  11.  
  12. Rem Poi uso Split per ottenere l'array
  13. arr = Split(sContents, vbCrLf)
  14.  
  15. Rem ora valorizzo i 2 Textbox
  16. Text1.Text = arr(0)
  17. Text2.Text = Replace(sContents, arr(0), "")



HTH
:)

PM Quote
Avatar
riddick (Normal User)
Rookie


Messaggi: 37
Iscritto: 17/06/2011

Segnala al moderatore
Postato alle 20:25
Sabato, 18/06/2011
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...

PM Quote