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
C# / VB.NET - mettere una
Forum - C# / VB.NET - mettere una "pausa" ad un ciclo

Avatar
Tonino70 (Normal User)
Rookie


Messaggi: 21
Iscritto: 29/08/2008

Segnala al moderatore
Postato alle 18:18
Mercoledì, 08/10/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

  1. Private Sub btn_inizia_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_inizia.Click
  2.  
  3.         ' se il nome del file è <> da null inizia la lettura
  4.         If OpenFileDialog_fatture.FileName <> "" Then
  5.             Dim riga_del_file As New IO.StreamReader(OpenFileDialog_fatture.FileName)
  6.  
  7.             ' ciclo di lettura fino a quando non si raggiunge la fine del file da leggere
  8.             While Not riga_del_file.EndOfStream
  9.  
  10.                 ' lettura della riga
  11.                 progressivo_riga += 1
  12.                 riga_del_file_appo = riga_del_file.ReadLine
  13.                 TextBox_riga_del_file.Text = riga_del_file_appo
  14.                 TextBox_progressivo_riga.Text = Str(progressivo_riga)
  15.  
  16.                 ' assegnazione delle colonne lette alle box dell'archivio
  17.  
  18.             End While
  19.         End If
  20.     End Sub



PM Quote
Avatar
Overflow (Normal User)
Expert


Messaggi: 334
Iscritto: 11/01/2008

Segnala al moderatore
Postato alle 18:35
Mercoledì, 08/10/2008
Codice sorgente - presumibilmente VB.NET

  1. 'in generale
  2. dim aperto as boolean = false
  3.  
  4. Private Sub btn_inizia_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_inizia.Click
  5.  
  6. if aperto = false then
  7. If OpenFileDialog_fatture.FileName <> "" Then
  8. Dim riga_del_file As New IO.StreamReader(OpenFileDialog_fatture.FileName)
  9. aperto = true
  10. else
  11. if Not riga_del_file.EndOfStream then
  12. progressivo_riga += 1
  13. riga_del_file_appo = riga_del_file.ReadLine
  14. TextBox_riga_del_file.Text = riga_del_file_appo
  15. TextBox_progressivo_riga.Text=Str(progressivo_riga)
  16. else
  17. 'chiudi il file
  18. riga_del_file.close()
  19. end if
  20. End If
  21. end if
  22. End Sub



credo che cosi dovrebbe andare, non l'ho testato

Ultima modifica effettuata da Overflow il 08/10/2008 alle 18:38
PM Quote
Avatar
Tonino70 (Normal User)
Rookie


Messaggi: 21
Iscritto: 29/08/2008

Segnala al moderatore
Postato alle 19:33
Mercoledì, 08/10/2008
ciao, ho provato e mi dà come errore:

nome "riga_del_file" non dichiarato

grazie.
Codice sorgente - presumibilmente VB.NET

  1. Public Class frm_acquisizione_fatture
  2.     Dim riga_del_file_appo As String
  3.     Dim colonna_1 As String
  4.     Dim colonna_2 As String
  5.     Dim colonna_3 As String
  6.     Dim colonna_4 As String
  7.     Dim colonna_5 As String
  8.     Dim colonna_6 As String
  9.     Dim colonna_7 As String
  10.     Dim colonna_8 As String
  11.     Dim colonna_9 As String
  12.     Dim progressivo_riga As Integer
  13.     Dim avanti As String
  14.     Dim aperto As Boolean = False
  15.  
  16.     Private Sub Arc_testata_fattureBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Arc_testata_fattureBindingNavigatorSaveItem.Click
  17.         Me.Validate()
  18.         Me.Arc_testata_fattureBindingSource.EndEdit()
  19.         Me.TableAdapterManager.UpdateAll(Me.Db_prefedilDataSet)
  20.  
  21.     End Sub
  22.  
  23.     Private Sub frm_acquisizione_fatture_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  24.         'TODO: questa riga di codice carica i dati nella tabella 'Db_prefedilDataSet.arc_testata_fatture'. È possibile spostarla o rimuoverla se necessario.
  25.         Me.Arc_testata_fattureTableAdapter.Fill(Me.Db_prefedilDataSet.arc_testata_fatture)
  26.         TextBox_progressivo_riga.Text = " "
  27.         ' visualizza la box di apertura file
  28.         OpenFileDialog_fatture.Filter = "File di Spring (*.TRF) |*.TRF"
  29.         OpenFileDialog_fatture.ShowDialog()
  30.  
  31.     End Sub
  32.  
  33.     Private Sub btn_fine_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_fine.Click
  34.         Me.Close()
  35.     End Sub
  36.  
  37.     Private Sub btn_inizia_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_inizia.Click
  38.  
  39.         ' se il nome del file è <> da null inizia la lettura
  40.         If aperto = False Then
  41.             If OpenFileDialog_fatture.FileName <> "" Then
  42.                 Dim riga_del_file As New IO.StreamReader(OpenFileDialog_fatture.FileName)
  43.  
  44.                 aperto = True
  45.             Else
  46.                 ' ciclo di lettura fino a quando non si raggiunge la fine del file da leggere
  47.                 If Not riga_del_file.EndOfStream Then
  48.  
  49.                     ' lettura della riga
  50.                     progressivo_riga += 1
  51.                     riga_del_file_appo = riga_del_file.ReadLine
  52.                     TextBox_riga_del_file.Text = riga_del_file_appo
  53.                     TextBox_progressivo_riga.Text = Str(progressivo_riga)
  54.                 Else
  55.                     riga_del_file.Close()
  56.                     ' assegnazione delle colonne lette alle box dell'archivio
  57.  
  58.                 End If
  59.             End If
  60.         End If
  61.     End Sub
  62.  
  63.     Private Sub btn_avanti_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_avanti.Click
  64.         aperto = True
  65.     End Sub
  66. End Class


PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 19:49
Mercoledì, 08/10/2008
devi dichiararlo come stringa e dagli il valore

PM Quote
Avatar
Tonino70 (Normal User)
Rookie


Messaggi: 21
Iscritto: 29/08/2008

Segnala al moderatore
Postato alle 20:12
Mercoledì, 08/10/2008
scusate ma non capisco...

tipo Dim riga_del_file As String

e poi che valore assegno ?

grazie

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 20:22
Mercoledì, 08/10/2008
Testo quotato

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

  1. Dim nome_del_file as string = "C:\pluto.txt"


PM Quote
Avatar
Overflow (Normal User)
Expert


Messaggi: 334
Iscritto: 11/01/2008

Segnala al moderatore
Postato alle 16:15
Giovedì, 09/10/2008
scusa c'era un errore nel codice:

Codice sorgente - presumibilmente VB.NET

  1. 'in generale
  2. dim aperto as boolean = false
  3.  
  4. Private Sub btn_inizia_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_inizia.Click
  5.  
  6. if aperto = false then
  7.  If OpenFileDialog_fatture.FileName <> "" Then
  8.   Dim riga_del_file As New IO.StreamReader(OpenFileDialog_fatture.FileName)
  9.   aperto = true
  10.  else
  11.   msgbox "il file non esiste"
  12.   exit sub
  13.  end if
  14. else
  15.  if Not riga_del_file.EndOfStream then
  16.   progressivo_riga += 1
  17.   riga_del_file_appo = riga_del_file.ReadLine
  18.   TextBox_riga_del_file.Text = riga_del_file_appo
  19.   TextBox_progressivo_riga.Text=Str(progressivo_riga)
  20.  else
  21.   'chiudi il file
  22.   riga_del_file.close()
  23.  end if
  24. end if
  25.  
  26. end sub



credo che cosi dovrebbe andare.

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 16:57
Giovedì, 09/10/2008
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.

PM Quote