Comparando arquivos não funcionando conforme o esperado
oi pessoal alguém poderia me explicar por que isso não funciona.
Basicamente, tenho que arquivos de texto chamados Livros e NewBooks ...
Os arquivos de texto são preenchidos a partir de uma solicitação da Web e as informações são analisadas nos arquivos de texto ... quando inicio o programa Livros e novos livros são idênticos e praticamente uma cópia um do outro.
mais solicitações da web são feitas para atualizar o arquivo de texto do NewBooks e quando eu comparo-as, se houver uma linha no NewBooks que não esteja no Books, ela adiciona essa linha a um terceiro arquivo de texto chamado myNewBooks. Agora meu código inicial que mostrarei aqui funciona como eu esperava
Dim InitialBooks = File.ReadAllLines("Books.json")
Dim TW As System.IO.TextWriter
'Create a Text file and load it into the TextWriter
TW = System.IO.File.CreateText("myNewBooks.JSON")
Dim NewBooks = String.Empty
Using reader = New StreamReader("NewBooks.json")
Do Until reader.EndOfStream
Dim current = reader.ReadLine
If Not InitialBooks.Contains(current) Then
NewBooks = current & Environment.NewLine
TW.WriteLine(NewBooks)
TW.Flush()
'Close the File
End If
Loop
End Using
TW.Close() : TW.Dispose()
mas como parte da string nas linhas do meu arquivo de texto contém um URL que, às vezes, encontro o mesmo livro com um URL diferente ... Eu estava recebendo entradas duplicadas de livros porque o URL era a única diferença. Então, pensei em dividir a string antes do URL para comparar o título, a descrição e a região ... Por exemplo, uma linha nos meus arquivos de texto é semelhante a esta:
{"Título": "Meu título aqui", "Descrição": "Minha descrição aqui", "Região": "Minha região aqui", "URL": "Meu URL aqui", "Imagem": "Minha imagem aqui" };
Hoje, um colega me ajudou a descobrir como dividir minha linha para que fique mais parecido com isto:
{"Título": "Meu título aqui", "Descrição": "Minha descrição aqui", "Região": "Minha região aqui", "URL"
o que é ótimo, mas agora, quando comparo, não vejo que a primeira linha contenha a linha de divisão e não entendo o porquê ... aqui está o código após a modificação.
Dim InitialBooks = File.ReadAllLines("Books.json")
Dim TW As System.IO.TextWriter
'Create a Text file and load it into the TextWriter
TW = System.IO.File.CreateText("myNewBooks.JSON")
Dim NewBooks = String.Empty
Using reader = New StreamReader("NewBooks.json")
Do Until reader.EndOfStream
Dim current = reader.ReadLine
Dim splitAt As String = """Url"""
Dim index As Integer = current.IndexOf(splitAt)
Dim output As String = current.Substring(0, index + splitAt.Length)
If Not InitialBooks.Contains(output) Then
NewBooks = current & Environment.NewLine
TW.WriteLine(NewBooks)
TW.Flush()
'Close the File
End If
Loop
End Using
TW.Close() : TW.Dispose()
Sua sabedoria seria apreciada !!