AJUDA COM NEW LIST
[ô]Pessoal tenho essa lista
Dim Dicionario As List(Of String) = New List(Of String)
[ô]Que estou preenchendo desta forma...
Dim codutf As System.Text.Encoding = System.Text.Encoding.GetEncoding([Ô]ISO-8859-1[Ô])
Read = New StreamReader(My.Application.Info.DirectoryPath & [Ô]\Dic.txt[Ô], codutf)
Using reader As StreamReader = Read
While Not reader.EndOfStream
Dim Line As String = reader.ReadLine()
Dicionario.Add(Line)
End While
End Using
[ô] para ultilizar estou tentando desta forma...
gb.Append(New Choices(New String() {Dicionario.ToString}))
Aonde estou errando? no meu TXT os nome estao cada um em sua linha da forma abaixo...
Dario
Rodrigo
Carlos
O preenchimento anterior era.
gb.Append(New Choices(New String() {[Ô]DÃRIO[Ô], [Ô]RODRIGO[Ô]}))
Dim Dicionario As List(Of String) = New List(Of String)
[ô]Que estou preenchendo desta forma...
Dim codutf As System.Text.Encoding = System.Text.Encoding.GetEncoding([Ô]ISO-8859-1[Ô])
Read = New StreamReader(My.Application.Info.DirectoryPath & [Ô]\Dic.txt[Ô], codutf)
Using reader As StreamReader = Read
While Not reader.EndOfStream
Dim Line As String = reader.ReadLine()
Dicionario.Add(Line)
End While
End Using
[ô] para ultilizar estou tentando desta forma...
gb.Append(New Choices(New String() {Dicionario.ToString}))
Aonde estou errando? no meu TXT os nome estao cada um em sua linha da forma abaixo...
Dario
Rodrigo
Carlos
O preenchimento anterior era.
gb.Append(New Choices(New String() {[Ô]DÃRIO[Ô], [Ô]RODRIGO[Ô]}))
Achei o erro esta nesta linha ele nao reconhece tostring...
gb.Append(New Choices(New String() {Dicionario.ToString}))
gb.Append(New Choices(New String() {Dicionario.ToString}))
Coloque um breakpoint no código e veja o que aparece quando tu digita [Ô]Dicionario.ToString()[Ô]. Tu vai ver que não é o que tu quer colocar no gb.Append...
Sim aparece a mensagem dizendo sobre a lista..
Tenta isso:
gb.Append(New Choices(Dicionario.ToString()))
Na verdade, o teu código não vai dar certo porque a função ToString() não vai retornar os dados da forma que tu quer.
Tu gostaria que ele retornasse uma lista com os nomes, né? Tipo [[Ô]Dario[Ô], [Ô]Rodrigo[Ô], [Ô]Carlos[Ô]]. é isso?
Tu gostaria que ele retornasse uma lista com os nomes, né? Tipo [[Ô]Dario[Ô], [Ô]Rodrigo[Ô], [Ô]Carlos[Ô]]. é isso?
Citação::
Na verdade, o teu código não vai dar certo porque a função ToString() não vai retornar os dados da forma que tu quer.
Tu gostaria que ele retornasse uma lista com os nomes, né? Tipo [[Ô]Dario[Ô], [Ô]Rodrigo[Ô], [Ô]Carlos[Ô]]. é isso?
Isso mesmo... Dentro do Txt esta desta forma...Abaixo cada um na sua linha.
Dario
Rodrigo
Carlos
O problema ai é que você não está entendendo o que está fazendo, você precisa entender esta linha
gb.Append(...) é o método que você está chamando, para ele você passa um parâmetro
New Choices(...) é uma classe que você está instanciando e passando como parâmetro ao gb.Append(), e esta classe possui um construtor que você está passando um parâmetro
New String() {[Ô]DÃRIO[Ô], [Ô]RODRIGO[Ô]} é o que você está passando como parâmetro para o construtor da classe Choices, com isso você está instanciando e preenchendo um Array de Strings
Essa forma de criar o array teria o mesmo resultado que fazer assim
Então o que precisa mudar é os valores desse array, que você precisa carregar do arquivo.
Então o primeiro de tudo, se essa classe Choices foi criada por você (o que eu não creio que seja o caso) eu diria para modifica-la para trabalhar com um List(Of String) em vez de Array, como esse provavelmente não é o caso o que você precisa é passar para ela um array, o que no caso de converter um List(Of String) para um array de Strings é simplesmente chamar o método ToArray() dele.
gb.Append(New Choices(Dicionario.ToArray()))
E nesse caso você pode simplificar isso um pouco mais já que a classe System.IO.File possui um método estático chamado ReadAllLines que já faz isso, então o seu código poderia ser simplesmente
Na prática ele faz a mesma coisa, internamente ele carrega tudo em um List(Of String) e depois chama o ToArray() nele
gb.Append(New Choices(New String() {[Ô]DÃRIO[Ô], [Ô]RODRIGO[Ô]}))
gb.Append(...) é o método que você está chamando, para ele você passa um parâmetro
New Choices(...) é uma classe que você está instanciando e passando como parâmetro ao gb.Append(), e esta classe possui um construtor que você está passando um parâmetro
New String() {[Ô]DÃRIO[Ô], [Ô]RODRIGO[Ô]} é o que você está passando como parâmetro para o construtor da classe Choices, com isso você está instanciando e preenchendo um Array de Strings
Essa forma de criar o array teria o mesmo resultado que fazer assim
Dim array(1) As String [ô]lembrando que arrays começam do 0, então neste caso ele tem duas posições, 0 e 1
array(0) = [Ô]DÃRIO[Ô]
array(1) = [Ô]RODRIGO[Ô]
gb.Append(New Choices(array))
Então o que precisa mudar é os valores desse array, que você precisa carregar do arquivo.
Então o primeiro de tudo, se essa classe Choices foi criada por você (o que eu não creio que seja o caso) eu diria para modifica-la para trabalhar com um List(Of String) em vez de Array, como esse provavelmente não é o caso o que você precisa é passar para ela um array, o que no caso de converter um List(Of String) para um array de Strings é simplesmente chamar o método ToArray() dele.
gb.Append(New Choices(Dicionario.ToArray()))
E nesse caso você pode simplificar isso um pouco mais já que a classe System.IO.File possui um método estático chamado ReadAllLines que já faz isso, então o seu código poderia ser simplesmente
Dim encoding As System.Text.Encoding = System.Text.Encoding.GetEncoding([Ô]ISO-8859-1[Ô])
Dim linhas = System.IO.File.ReadAllLines(My.Application.Info.DirectoryPath & [Ô]\Dic.txt[Ô],encoding)
gb.Append(New Choices(linhas))
Na prática ele faz a mesma coisa, internamente ele carrega tudo em um List(Of String) e depois chama o ToArray() nele
O que é o objeto [Ô]gb[Ô]? Por conter o método Append, pode ser um StringBuilder, mas pode também ser outra coisa, então, o que ele é? Aliás, o que você quer fazer?
Citação:Isso mesmo... Dentro do Txt esta desta forma...Abaixo cada um na sua linha.
Dario
Rodrigo
Carlos
Então tu precisa usar isso: Dicionario.ToArray()
Assim, teu código ficaria:
[ô]Pessoal tenho essa lista
Dim Dicionario As List(Of String) = New List(Of String)
[ô]Que estou preenchendo desta forma...
Dim codutf As System.Text.Encoding = System.Text.Encoding.GetEncoding([Ô]ISO-8859-1[Ô])
Read = New StreamReader(My.Application.Info.DirectoryPath & [Ô]\Dic.txt[Ô], codutf)
Using reader As StreamReader = Read
While Not reader.EndOfStream
Dim Line As String = reader.ReadLine()
Dicionario.Add(Line)
End While
End Using
[ô] para ultilizar estou tentando desta forma...
gb.Append(New Choices(Dicionario.ToArray()))
Citação::
O que é o objeto [Ô]gb[Ô]? Por conter o método Append, pode ser um StringBuilder, mas pode também ser outra coisa, então, o que ele é? Aliás, o que você quer fazer?
No meu sistema de tcc faço uso da api Recognation para ele funcionar corretamente preciso adicionar e montar uma gramática, comi se ensinar se o sistema a falar, para isso poderia difitar milhares de palavras ao invés disso adicionei o dicionário Aurélio.
Tópico encerrado , respostas não são mais permitidas