CLASSIFICAR ARQUIVO TEXTO EM ORDEM CRESCENTE

USUARIO.EXCLUIDOS 04/01/2005 12:34:01
#58484
Cara acredito que o exemplo que passou funcione apenas precisa fazer uns ajustes de em vez de pegar em uma linha inteira pegue linha a linha de detalhes...
O que acha??
LCSD 04/01/2005 13:35:27
#58506
JefferSondo

Poderia já estar resolvido, é aquela história, se não fornecer todos os dados fica COMPRICADÃÅ¡!!!!!!
[s55]

LCSD 04/01/2005 15:51:40
#58556
JefferSondo

Está abaixo o código

Private Sub Importa()
Dim i As Integer, sCaminho As String, sTemp As String
Dim lArq As Long, sLinha As String, lCont As Long, lPos As Long

Dim rsDesconectado As ADODB.Recordset
Set rsDesconectado = New ADODB.Recordset

rsDesconectado.Fields.Append "EAN", adVarChar, 18
rsDesconectado.Fields.Append "Descricao", adVarChar, 35
rsDesconectado.Fields.Append "CodigoFornecedor", adVarChar, 20
rsDesconectado.Fields.Append "NumeroLote", adVarChar, 10
rsDesconectado.Fields.Append "Validade", adVarChar, 4
rsDesconectado.Fields.Append "QuantColetada", adVarChar, 6
rsDesconectado.Fields.Append "QuantInformada", adVarChar, 6
rsDesconectado.Fields.Append "CodigoDivergencia", adVarChar, 4
rsDesconectado.Fields.Append "QuantDivergencia", adVarChar, 6
'rsDesconectado.Fields.Append "EAN", adVarChar, 18



rsDesconectado.ActiveConnection = Nothing
rsDesconectado.CursorLocation = adUseClient

rsDesconectado.Open


sCaminho = App.Path & "\Banco Dados\Laboratorio.txt"

lArq = FreeFile
'Abertura do Arquivo
Open sCaminho For Input As lArq
lCont = 1
lPos = 0
Do While Not EOF(lArq)
'Leitura das Linhas de Texto
Line Input #lArq, sLinha

'Monta os Registros
If lCont > 1 Then
If Left(sLinha, 1) = "2" Then Exit Do
'For lPos = 0 To Len(sLinha) Step 68
rsDesconectado.AddNew
rsDesconectado("EAN").Value = Mid(sLinha, lPos + 1, 18)
rsDesconectado("Descricao").Value = Mid(sLinha, lPos + 19, 35)
rsDesconectado("CodigoFornecedor").Value = Mid(sLinha, lPos + 55, 6)
rsDesconectado("NumeroLote").Value = Mid(sLinha, lPos + 62, 10)
rsDesconectado("Validade").Value = Mid(sLinha, lPos + 72, 4)
rsDesconectado("QuantColetada").Value = Mid(sLinha, lPos + 76, 6)
rsDesconectado("QuantInformada").Value = Mid(sLinha, lPos + 82, 6)
rsDesconectado("CodigoDivergencia").Value = Mid(sLinha, lPos + 88, 4)
rsDesconectado("QuantDivergencia").Value = Mid(sLinha, lPos + 92, 6)
rsDesconectado.Update

' Next
End If
lCont = lCont + 1
Loop

Close #lArq

rsDesconectado.Sort = ("Descricao ASC, CodigoFornecedor ASC")

Set MSHFlexGrid1.DataSource = rsDesconectado
rsDesconectado.Close
Set rsDesconectado = Nothing
MSHFlexGrid1.ColWidth(0) = 200
MSHFlexGrid1.ColWidth(1) = 1500
MSHFlexGrid1.ColWidth(2) = 3500
MSHFlexGrid1.ColWidth(3) = 1500

MsgBox "Importado e Classificado "

End Sub


Teste e veja se é isto que necessita.
[s92]


[txt-color=#0000ff]** Por favor, na próxima vez, seja um pouco mais claro, facilita muito e poupa tempo. [/txt-color]
[s79]
LCSD 04/01/2005 15:52:47
#58557
Falta só o Cabeçalho, mas se tu não fizer isto.........
[s24] [s24] [s24] [s24] [s24]




USUARIO.EXCLUIDOS 04/01/2005 16:17:18
#58566
Cara blz!! Vou testar.... [S27]
tenho uma duvida sobre esta linhas abaixo?

'--- Aqui classifica por ordem de DESCRICAO , seguida por COD.FORNECEDOR?
rsDesconectado.Sort = ("Descricao ASC, CodigoFornecedor ASC")

'--- abaixo o que quer dizer MSHFlexGrid1?? Esta configurando o Grid da Tabela?
'--- Não definiu Banco e nem Tabela !? Posso definir qualquer uma??
Set MSHFlexGrid1.DataSource = rsDesconectado
rsDesconectado.Close
Set rsDesconectado = Nothing
MSHFlexGrid1.ColWidth(0) = 200
MSHFlexGrid1.ColWidth(1) = 1500
MSHFlexGrid1.ColWidth(2) = 3500
MSHFlexGrid1.ColWidth(3) = 1500

[S51] [S51]
LCSD 04/01/2005 16:23:29
#58570
JefferSondo

Aqui eu crio os Campos

rsDesconectado.Fields.Append "EAN", adVarChar, 18
rsDesconectado.Fields.Append "Descricao", adVarChar, 35
rsDesconectado.Fields.Append "CodigoFornecedor", adVarChar, 20
rsDesconectado.Fields.Append "NumeroLote", adVarChar, 10
rsDesconectado.Fields.Append "Validade", adVarChar, 4
rsDesconectado.Fields.Append "QuantColetada", adVarChar, 6
rsDesconectado.Fields.Append "QuantInformada", adVarChar, 6
rsDesconectado.Fields.Append "CodigoDivergencia", adVarChar, 4
rsDesconectado.Fields.Append "QuantDivergencia", adVarChar, 6


Aqui é informado que é um RecordSet DESCONECTADO ou seja, não existe Banco de Dados, é criado em tempo de execução Estrutura, alimentado e destruído no final

rsDesconectado.ActiveConnection = Nothing
rsDesconectado.CursorLocation = adUseClient

Com relação ao MSHFlexGrid1 é um Hierarchical FlexGrid.
[s92]

USUARIO.EXCLUIDOS 04/01/2005 16:37:39
#58576
Ou seja o arquivo é classificado nele mesmo??
Fica conforme eu disse no iníco??? [S36]

[S39] Só mais uma coisina que vc não respondeu... hehehe... se eu colocar assim:
rsDesconectado.Sort = ("EAN ASC, Descricao ASC") , vai classificar por EAN e Descrição?

Bem o cabeçalho e trailler não são mexidos, certo?
Cara sei que tu deve ficar de saco cheio de perguntas imbecis, mas é uma coisa que nao domino.. mas uma vez valeu mesmo pela ajuda que vem me dando

[S79]
LCSD 04/01/2005 16:45:22
#58581
Resposta escolhida
Agora tu me deixou irado!!!!!!!!!!!!!!!
[s24]

Sim, o Sort ordena RecordSets Desconectados, mas esta documentação está disponível no MSDN Library, eu, por exemplo, não sabia até semana passada, li para um colega que queria ordenar Times e Saldos de Gols e montei um exemplo bem próximo ao seu.

[txt-color=#0000ff]** MSDN Library: sem sombra de dúvida a 1Âê Opção na hora da dúvida!!! [/txt-color]
[s92]

LCSD 04/01/2005 16:47:32
#58582
Trailer??????????????

Aqui ele verifica se o 1º Dígito da linha é o 2, se for é o Trailler!
[s55]

If Left(sLinha, 1) = "2" Then Exit Do 


Ou estou enganado???????
[s50]

USUARIO.EXCLUIDOS 04/01/2005 16:59:02
#58590
Com certeza tu tem que ficar irado..hehehe... [S52] [S67]
Um mané que nem eu... hehehe.... mas faz parte, cara estou sem o MSDN Libary, nao estou conseguindo comprar apenas ele....

Tens razão.. o arquivo é composto desta maneira:
0 Header
1 Detalhe
1 Detalhe
1 Detalhe...
2 Trailler

Cara vou ver o que posso fazer para conseguir o libary
Eu tenho o .Net completo posso usar o MSDN Libary do .Net para esta versao de Visual Studio, que no caso é o Enterprise Edition???

[]ÂÂÂ's
Jefferson

Página 2 de 3 [30 registro(s)]
Tópico encerrado , respostas não são mais permitidas