AJUDA COM LEITURA TXT

KURTGU 22/06/2013 15:39:07
#425094
Pessoal to tentado ler um txt mais ele nao le o arquivo completo ele le somente a primeira linha estou usando codigo abaixo aonde estou errando...

Dim lines As New List(Of String)

Using sr As New StreamReader(My.Application.Info.DirectoryPath & [Ô]\Data\Favoritos.txt[Ô])
While Not sr.EndOfStream
lines.Add(sr.ReadLine)
End While
End Using

For Each line As String In lines
If line.Contains(nomefilme.Text) Then
MsgBox([Ô]Este favorito ja esta na lista[Ô])
Else
MsgBox([Ô]Adicionado com Sucesso[Ô])
End If
Exit For
Next
ALTAIR148 22/06/2013 18:28:22
#425096
Boa noite,

Repare o seguinte.

Citação:

End If
Exit For



Dessa forma sempre na primeira linha ele vai sair fora, pois o [Ô]Exit For[Ô] não esta dentro de nenhuma condição, para que dê certp tem que colocar ele dentro da condição IF.

Tipo assim:

Citação:

Dim lines As New List(Of String)

Using sr As New StreamReader([Ô]c:    este.txt[Ô])
While Not sr.EndOfStream
lines.Add(sr.ReadLine)
End While
End Using

For Each line As String In lines
If line.Contains([Ô]asd[Ô]) Then
MsgBox([Ô]Este favorito ja esta na lista[Ô])
Exit For
Else
MsgBox([Ô]Adicionado com Sucesso[Ô])
Exit For
End If

Next

KURTGU 22/06/2013 19:53:19
#425098
Opa altair blz mesmo fazendo da forma que voce falou, ele continua adicionando os que ja estao na lista estranho ja tentei de tudo...Estou usando um arquivo txt...com delimitador....da forma que esta abaixo...ele so indenfica sempre a primeira linha...mesmo usando o codigo que voce postou...

1|Zodiaco Chinês|http://d3gtl9l2a4fn1j.cloudfront.net/t/p/w185/6mDiKIEdZENIh30CSsYb1puCo8K.jpg
6|Duro de Matar Um Bom Dia Para Morrer|http://d3gtl9l2a4fn1j.cloudfront.net/t/p/w185/7JKli6FqxK6kEsNRUW8JVGmGSNI.jpg
5|G.I. JOE 2 RETALIAÇÃO|http://d3gtl9l2a4fn1j.cloudfront.net/t/p/w185/iFWxbu2LLtfaWv6D1TSrY11huTe.jpg
2|Finalmente 18|http://d3gtl9l2a4fn1j.cloudfront.net/t/p/w185/9W3CUFNJx3rJAFKFhvvghR4dC5m.jpg
4|As Aventuras de Pi|http://d3gtl9l2a4fn1j.cloudfront.net/t/p/w185/rXhuBgQyRKB7cW5BRImyVkO89K7.jpg
3|João e Maria Caçadores de Bruxas|http://d3gtl9l2a4fn1j.cloudfront.net/t/p/w185/yDIVWFJqFLIeS8E1R6GG9uwPMS3.jpg
DEXTERFUD 23/06/2013 14:13:29
#425110
Adicionar no ListBox os Seus Filmes :
Citação:

ListBox1.Items.AddRange(Split(My.Computer.FileSystem.ReadAllText(filme), vbNewLine))


Porcurar se No Lisbox 1 Contem o Nome do File:
Esse Codigo eh so da verificação do Loop do Listbox eh por sua conta
Citação:


recebe = listbox1.items(0)
if InStr(UCase(recebe), UCase(txtflme.txt)) > 0 then
listbox2.items.add(recebe)
listbox1.items.removeat(0)
msgbox [Ô]filme encontrado[Ô]
else
listbox1.items.removeat(0)
end if

KURTGU 24/06/2013 10:43:19
#425133
nao to querendo usar o listiview ou datagrid preciso ler da forma que estou fazendo, via codigo mais assim mesmo agradeco pela ajuda [txt-color=#e80000]DEXTERFUD[/txt-color] Se alguem souber aonde estou errando agradeco...
KURTGU 24/06/2013 10:55:42
#425136
Pessoal achei um codigo na net mais apresenta o mesmo problema.... ele esta funcionando exibindo que ja tem mais queria informar, quando nao estivesse na lista...

Using reader As New StreamReader(My.Application.Info.DirectoryPath & [Ô]\Data\Favoritos.txt[Ô])
While Not reader.EndOfStream
Dim line As String = reader.ReadLine()
If line.Contains(nomefilme.Text) Then
MsgBox([Ô]JA TEM[Ô])
Exit While
End If
End While
End Using
ALEVALE 24/06/2013 11:00:22
#425138
Resposta escolhida
Tenta assim:

Citação:

Dim strNomeFilme As String = [Ô]Duro de Matar[Ô]

Using MyReader As New Microsoft.VisualBasic.FileIO.TextFieldParser([Ô]C:\Arquivo.txt[Ô], System.Text.Encoding.Default)

MyReader.TextFieldType = FileIO.FieldType.Delimited
MyReader.SetDelimiters([Ô]|[Ô])

Dim currentRow As String()
While Not MyReader.EndOfData

Try
currentRow = MyReader.ReadFields()
Dim currentField As String

For Each currentField In currentRow
If currentField.Contains(strNomeFilme) Then
MsgBox(currentField.ToString & [Ô] - Filme já cadastrado ![Ô])
Else
[ô]MsgBox(currentField)
End If
Next

Catch ex As Exception
MsgBox([Ô]Erro[Ô])
End Try

End While
End Using

KURTGU 24/06/2013 11:06:26
#425139
Opa ale cara vlw pela ajuda, mais a mesma coisa e muito estranho cara hehehehe esse codigo que eu postei ele informa normalmente que ja tem, mais os que nao estao nao da pra colocar a msgbox avisando que nao tem putz hehehehehe estranho...


Using reader As New StreamReader(My.Application.Info.DirectoryPath & [Ô]\Data\Favoritos.txt[Ô])
While Not reader.EndOfStream
Dim line As String = reader.ReadLine()
If line.Contains(nomefilme.Text) Then
MsgBox([Ô]JA TEM[Ô])
Exit While
End If
End While
End Using
ALEVALE 24/06/2013 11:15:27
#425141
Citação:

For Each currentField In currentRow
If currentField.Contains(strNomeFilme) Then
MsgBox(currentField.ToString & [Ô] - Filme já cadastrado ![Ô])
Else
MsgBox(currentField.ToString & [Ô] - Filme NOVO[Ô])
End If
Next

KURTGU 24/06/2013 11:53:22
#425146
Resolvido...Vlw pela ajuda AleVale e Altair e outros...
Tópico encerrado , respostas não são mais permitidas