Tonino70 (Normal User)
Rookie
Messaggi: 21
Iscritto: 29/08/2008
|
ciao, è sempre il principiante che disturba,
ho questo problema, ho fatto un ciclo per leggere dei dati da un file testo, come è adesso inizia e quando raggiunge la fine si ferma.
dovrei mettere un "bottone" di "avanti" per farmi leggere una riga alla volta, così manmano vedo cosa legge e sarei io a dirgli di continuare
vb2008 grazie
Antonino Dimarco
Codice sorgente - presumibilmente VB.NET |
Private Sub btn_inizia_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_inizia.Click ' se il nome del file è <> da null inizia la lettura If OpenFileDialog_fatture.FileName <> "" Then Dim riga_del_file As New IO.StreamReader(OpenFileDialog_fatture.FileName) ' ciclo di lettura fino a quando non si raggiunge la fine del file da leggere While Not riga_del_file.EndOfStream ' lettura della riga progressivo_riga += 1 riga_del_file_appo = riga_del_file.ReadLine TextBox_riga_del_file.Text = riga_del_file_appo TextBox_progressivo_riga.Text = Str(progressivo_riga) ' assegnazione delle colonne lette alle box dell'archivio End While End If End Sub
|
|
|
Overflow (Normal User)
Expert
Messaggi: 334
Iscritto: 11/01/2008
|
Codice sorgente - presumibilmente VB.NET |
'in generale dim aperto as boolean = false Private Sub btn_inizia_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_inizia.Click if aperto = false then If OpenFileDialog_fatture.FileName <> "" Then Dim riga_del_file As New IO.StreamReader(OpenFileDialog_fatture.FileName) aperto = true else if Not riga_del_file.EndOfStream then progressivo_riga += 1 riga_del_file_appo = riga_del_file.ReadLine TextBox_riga_del_file.Text = riga_del_file_appo TextBox_progressivo_riga.Text=Str(progressivo_riga) else 'chiudi il file riga_del_file.close() end if End If end if End Sub
|
credo che cosi dovrebbe andare, non l'ho testato
Ultima modifica effettuata da Overflow il 08/10/2008 alle 18:38 |
|
Tonino70 (Normal User)
Rookie
Messaggi: 21
Iscritto: 29/08/2008
|
ciao, ho provato e mi dà come errore:
nome "riga_del_file" non dichiarato
grazie.
Codice sorgente - presumibilmente VB.NET |
Public Class frm_acquisizione_fatture Dim riga_del_file_appo As String Dim colonna_1 As String Dim colonna_2 As String Dim colonna_3 As String Dim colonna_4 As String Dim colonna_5 As String Dim colonna_6 As String Dim colonna_7 As String Dim colonna_8 As String Dim colonna_9 As String Dim progressivo_riga As Integer Dim avanti As String Dim aperto As Boolean = False Private Sub Arc_testata_fattureBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Arc_testata_fattureBindingNavigatorSaveItem.Click Me.Validate() Me.Arc_testata_fattureBindingSource.EndEdit() Me.TableAdapterManager.UpdateAll(Me.Db_prefedilDataSet) End Sub Private Sub frm_acquisizione_fatture_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'TODO: questa riga di codice carica i dati nella tabella 'Db_prefedilDataSet.arc_testata_fatture'. È possibile spostarla o rimuoverla se necessario. Me.Arc_testata_fattureTableAdapter.Fill(Me.Db_prefedilDataSet.arc_testata_fatture) TextBox_progressivo_riga.Text = " " ' visualizza la box di apertura file OpenFileDialog_fatture.Filter = "File di Spring (*.TRF) |*.TRF" OpenFileDialog_fatture.ShowDialog() End Sub Private Sub btn_fine_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_fine.Click Me.Close() End Sub Private Sub btn_inizia_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_inizia.Click ' se il nome del file è <> da null inizia la lettura If aperto = False Then If OpenFileDialog_fatture.FileName <> "" Then Dim riga_del_file As New IO.StreamReader(OpenFileDialog_fatture.FileName) aperto = True Else ' ciclo di lettura fino a quando non si raggiunge la fine del file da leggere If Not riga_del_file.EndOfStream Then ' lettura della riga progressivo_riga += 1 riga_del_file_appo = riga_del_file.ReadLine TextBox_riga_del_file.Text = riga_del_file_appo TextBox_progressivo_riga.Text = Str(progressivo_riga) Else riga_del_file.Close() ' assegnazione delle colonne lette alle box dell'archivio End If End If End If End Sub Private Sub btn_avanti_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_avanti.Click aperto = True End Sub End Class
|
|
|
()
Newbie
Messaggi:
Iscritto:
|
devi dichiararlo come stringa e dagli il valore
|
|
Tonino70 (Normal User)
Rookie
Messaggi: 21
Iscritto: 29/08/2008
|
scusate ma non capisco...
tipo Dim riga_del_file As String
e poi che valore assegno ?
grazie
|
|
()
Newbie
Messaggi:
Iscritto:
|
Postato originariamente da Tonino70:
scusate ma non capisco...
tipo Dim riga_del_file As String
e poi che valore assegno ?
grazie |
credo il percorso e l'estensione del file.
es:
Codice sorgente - presumibilmente C# / VB.NET |
Dim nome_del_file as string = "C:\pluto.txt"
|
|
|
Overflow (Normal User)
Expert
Messaggi: 334
Iscritto: 11/01/2008
|
scusa c'era un errore nel codice:
Codice sorgente - presumibilmente VB.NET |
'in generale dim aperto as boolean = false Private Sub btn_inizia_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_inizia.Click if aperto = false then If OpenFileDialog_fatture.FileName <> "" Then Dim riga_del_file As New IO.StreamReader(OpenFileDialog_fatture.FileName) aperto = true else msgbox "il file non esiste" exit sub end if else if Not riga_del_file.EndOfStream then progressivo_riga += 1 riga_del_file_appo = riga_del_file.ReadLine TextBox_riga_del_file.Text = riga_del_file_appo TextBox_progressivo_riga.Text=Str(progressivo_riga) else 'chiudi il file riga_del_file.close() end if end if end sub
|
credo che cosi dovrebbe andare.
|
|
Il Totem (Admin)
Guru^2
Messaggi: 3635
Iscritto: 24/01/2006
|
Questi codici sono sbagliati. Una variabile dichiarata all'interno di un blocco (in questo caso l'If) non è visibile al di fuori del blocco stesso, perciò darà sempre errore di dichiarazione. La cosa migliore che puoi fare è impostare il reader come variabile globale e leggerne una riga con readline. Per spostarlo indietro dovresti invece memorizzare tutte le righe lette in un array.
|
|