ARQUIVO TEXTO - QUAL E ESSE PADRAO?
Boa Noite!
Tenho o arquivo texto abaixo, mas não é separado por virgulas. Qual esse padrão? Tem como jogar numa grid ou textboxes?
CodigoDescricaoValor UnitarioQuantidadeValor Total
116600055ESCOVA DE DENTES KIDS2,4024,80
116600578CREM DENTAL SENSITIVEL2,8038,40
116600586FRALDA DESCARTÃVEL NENEM4,80314,40
116600594DORIL GOTAS6,5516,55
116600187ALGODÃO EXTRA MACIO3,4026,80
apenas para entender vou desmembrar a primeira linha
[txt-color=#0000f0]166.. (código), Escova (Descrição), 2,40 (valor unitário), 2 (quantidade) e 4,80 (valor Total [/txt-color]
Se alguém puder me ajudar, agradeço
Tenho o arquivo texto abaixo, mas não é separado por virgulas. Qual esse padrão? Tem como jogar numa grid ou textboxes?
CodigoDescricaoValor UnitarioQuantidadeValor Total
116600055ESCOVA DE DENTES KIDS2,4024,80
116600578CREM DENTAL SENSITIVEL2,8038,40
116600586FRALDA DESCARTÃVEL NENEM4,80314,40
116600594DORIL GOTAS6,5516,55
116600187ALGODÃO EXTRA MACIO3,4026,80
apenas para entender vou desmembrar a primeira linha
[txt-color=#0000f0]166.. (código), Escova (Descrição), 2,40 (valor unitário), 2 (quantidade) e 4,80 (valor Total [/txt-color]
Se alguém puder me ajudar, agradeço
Pelo que to vendo, é texto puro, mas percebo que a descrição tem comprimento variado no teu exemplo. No arquivo que vc tem, não existem espaços pra definir um comprimento fixo nos campos do arquivo?
Bom olhando assim por cima o que daria pra fazer é um [Ô]For percorrendo a string[Ô] verificando se cada elemento é numerico por exemplo quando não fosse vc saberia que é a [Ô]Descrição[Ô], continuaria o for até chegar na demais posições, dai é só ir quebrando a string ...
é separado por vÃrgulas. Vc pode fazer um split. Um detalhe é que o valor deveria estar separado por ponto, deixando a vÃrgula reservada para separador de campo.
Também daria mas de qq forma teria que pegar o ultimo caracter antes da string e depois colocar ela no proxima quebra pois seria o valor.....
Caso não tiver nenhum separador e nehuma lógica 100% garantida, eu faria uma gambi mesmo...
Veja:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Itens(4) As String
Itens(0) = [Ô]116600055ESCOVA DE DENTES KIDS2,4024,80[Ô]
Itens(1) = [Ô]116600578CREM DENTAL SENSITIVEL2,8038,40[Ô]
Itens(2) = [Ô]116600586FRALDA DESCARTÃVEL NENEM4,80314,40[Ô]
Itens(3) = [Ô]116600594DORIL GOTAS6,5516,55[Ô]
Itens(4) = [Ô]116600187ALGODÃO EXTRA MACIO3,4026,80[Ô]
For Each Item As String In Itens
Me.Separar(Item)
Next
End Sub
Friend Sub Separar(ByVal pTexto As String)
Dim Codigo As String = String.Empty
Dim Descricao As String = String.Empty
Dim ValorUnitario As String = String.Empty
Dim Quantidade As String = String.Empty
Dim ValorTotal As String = String.Empty
Codigo = Microsoft.VisualBasic.Left(pTexto, 9)
pTexto = pTexto.Remove(0, 9)
Dim FinalDescricao As Integer = 0
For Each Letra As Char In pTexto
If Char.IsNumber(Letra) Then
Exit For
End If
FinalDescricao += 1
Next
Descricao = Microsoft.VisualBasic.Left(pTexto, FinalDescricao)
pTexto = pTexto.Remove(0, FinalDescricao)
ValorUnitario = Microsoft.VisualBasic.Left(pTexto, pTexto.IndexOf([Ô],[Ô]) + 3)
pTexto = pTexto.Remove(0, pTexto.IndexOf([Ô],[Ô]) + 3)
Quantidade = Microsoft.VisualBasic.Left(pTexto, 1)
pTexto = pTexto.Remove(0, 1)
ValorTotal = pTexto
Me.DataGridView1.Rows.Add(Codigo, Descricao, ValorUnitario, Quantidade, ValorTotal)
End Sub
Observação: Só use isso em últimos casos. hehehe
Mostrei como daria para fazer, agora se essa é a lógica correta não sei dizer.
Uaua e que pensava que a minha cambi era nervosa...rsrsrs
Mas ficou bem melhor que a minha !!!
Mas ficou bem melhor que a minha !!!
Tópico encerrado , respostas não são mais permitidas