AJUDA COM NEW LIST

KURTGU 14/09/2016 11:55:40
#466908
[ô]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[Ô]}))
KURTGU 14/09/2016 12:48:22
#466910
Achei o erro esta nesta linha ele nao reconhece tostring...

gb.Append(New Choices(New String() {Dicionario.ToString}))
ASHKATCHUP 14/09/2016 13:28:07
#466912
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...
KURTGU 14/09/2016 14:15:46
#466915
Sim aparece a mensagem dizendo sobre a lista..
ASHKATCHUP 14/09/2016 14:51:51
#466916
Tenta isso:

 gb.Append(New Choices(Dicionario.ToString()))
ASHKATCHUP 14/09/2016 14:54:44
#466917
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?
KURTGU 14/09/2016 15:01:38
#466918
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
OCELOT 14/09/2016 17:07:35
#466924
O problema ai é que você não está entendendo o que está fazendo, você precisa entender esta linha
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
KERPLUNK 14/09/2016 18:34:59
#466927
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?
ASHKATCHUP 14/09/2016 21:49:28
#466939
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()))
KURTGU 14/09/2016 21:53:48
#466940
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.
Página 1 de 2 [18 registro(s)]
Tópico encerrado , respostas não são mais permitidas