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 - contains - problemino per andare a capo
Forum - C# / VB.NET - contains - problemino per andare a capo

Avatar
alexVB2005 (Normal User)
Newbie


Messaggi: 1
Iscritto: 06/12/2007

Segnala al moderatore
Postato alle 15:39
Giovedì, 06/12/2007
Questo topic è stato chiuso dal moderatore

ciao a tutti e sono nuovo.


ho un piccolo problema con un programma che ho fatto.

la sua funzione è quella di analizzare un file di batch dicendo con una messagebox che quel file è infetto.

al click con il button ho inserito questo codice:
Codice sorgente - presumibilmente VB.NET

  1. Dim c As New IO.StreamReader(TextBox1.Text)
  2.             Dim b = c.ReadLine
  3.             If b.contains("del") Then
  4.                 MsgBox("this file is infected = command del")
  5.             End If



ora il problema è che quando legge nel file non va a capo! nel senso che legge solo la prima riga del file!.

ho provato in un sacco di modi ma niente.

potreste spiegarmi come fare?

ed anche perchè se voglio scrivere in un file funziona mentre con il comando contains no?

grazie in anticipo.

PM
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 17:15
Giovedì, 06/12/2007
Legge solo una riga perchè tu gli hai comunicato di leggere solo una riga: infatti la funzione ReadLine è presente solo una volta nell'assegnazione in-line della variabile b (di cui non si conosce il tipo, e perciò vengono effettuate operazioni di boxing a runtime che aumentano l'uso di memoria). Oltre a questo, non hai controllato che il file esista prima di procedere e ti sei dimenticato di chiuderlo.
Codice sorgente - presumibilmente VB.NET

  1. If Not IO.File.Exists(TextBox1.Text) Then
  2.   'Il file non esiste, lancia un errore
  3.   Exit Sub
  4. End If
  5.  
  6. Dim R As New IO.StreamReader(TextBox1.Text)
  7. Dim Line As String
  8.  
  9. 'Fino alla fine del file
  10. While Not R.EndOfStream
  11.   'Legge una riga
  12.   Line = R.ReadLine
  13.   'Controlla che contenga "del", senza tener conto
  14.   'delle maiuscole
  15.   If Line.ToLower.Contains("del") Then
  16.     'Il file e' pericoloso: inutile procedere
  17.     MessageBox.Show("File pericoloso!")
  18.     Exit While
  19.   End If
  20. End While
  21.  
  22. 'Chiude il file
  23. R.Close()



P.S.: mi sa che Piero non ha tenuto conto che  commenti in Visual Basic sono solo a linea singola...

Ultima modifica effettuata da Il Totem il 06/12/2007 alle 17:17
PM