CLASSIFICAR ARQUIVO TEXTO EM ORDEM CRESCENTE

LCSD 04/01/2005 17:08:33
#58597
JefferSondo

Não estou te chamando de Mané, que isto, longe de mim.

Só que peço para ser mais claro, poderia estar resolvido na 1Âê página as 8:00 da manhã!!!!!!!
[s55]

Não adianta abrir um tópico com 25% da descrição, porque chateia montar uma solução e depois avisar que postou incorretamente, no caso da linha, e desmonta a lógica e monta novamente, depois desmonta de novo eram outros campos....

Por favor, mais atenção e SEMPRE poste nestes casos, uma Massa de Dados, assim o problema é resolvido rápido.

Quanto ao HEADER, vai suar um pouco que os Detalhes e o Trailler já estão prontos!
[s92]


LCSD 05/01/2005 10:15:39
#58708
JefferSondo

Conseguiu montar o Header?
[s50]

USUARIO.EXCLUIDOS 05/01/2005 12:02:25
#58738
Poxa Amigão, ainda não tive tempo, estou testando o retorno do que esta função vai me proporcionar....
depois que fizer o SORT, vou ter que analisar a soma dos lotes de itens iguais e verificar se tem divergencia ou não, caso não, tenho que acertar a qtde informada com a coletada, para que mais na frente no sistema não trate este item sem divergencia, pois a ideia do sistema é trartar os itens com divergencia...

é isso ainda nem mexi.. vou ver depois do almoço...
Fique tranquivo que passarei um resultado dando certo ou nao... acredito que vá funcionar...
[S67] [S95]

Abs,
Jefferson
USUARIO.EXCLUIDOS 05/01/2005 16:30:06
#58833
[S90] [S91]
Cara estou fazendo o que vc me indicou, mas como eu declaro o MSHFlexGrid1??

Obrigado,
USUARIO.EXCLUIDOS 05/01/2005 16:49:22
#58841
[S25]
Acho que isso esta complicado, porque!
Porque o arquivo é descarregado em uma pasta, onde ao clicar num botão executa tudo isso e o MSHFlexGrid1 é um componente, que ao executar deve carregar um form com um tipo de DBGrid, certo?
Em vez de mostrar neste MSHFlexGrid, não pode jogar direto no arquivo??

[S38]

Jefferson
LCSD 05/01/2005 16:49:52
#58842
JefferSondo

Insira um MSHFlexGrid no Formulário, antes referencie ele no
Components
(ToolBar de Activex). Só isto
[s79]
USUARIO.EXCLUIDOS 05/01/2005 16:51:54
#58844
isso irá mostra-lo?
Vou fazer isso...
perae...
USUARIO.EXCLUIDOS 05/01/2005 17:31:57
#58853
Cara fiz o que me pediu, esta aparecendo o FlexGrid no form, mas isso é tranquilo, caso queira que ele suma.. hehehe....

Mas está apresentando o seguinte erro: [txt-color=#0000ff]"object variable or with block variable not set".[/txt-color]

instalei o seguinte componente:
[txt-color=#ff0000]"Microsoft FlexGrid Control 6.0 (SP6)" com a seguinte OCX (MSHFLXGD.OCX)"[/txt-color]

O nome tb nao é o mesmo que falou na dica: MSHFlexGrid, está mostrando MSFlexGrid, sem o "H", hehehe... cara que para sinistra... vc fez desta meneira no seu projeto?

[S92] [S82]
Jefferson
LCSD 11/01/2005 11:38:31
#59984
JefferSondo

Conseguiu montar o Header?
[s68]

USUARIO.EXCLUIDOS 17/01/2005 14:04:07
#61416
Encerrando o Tópico!!
Cara muito obrigado, mesmo!![S93][S88][S98]

fiz apenas uma modificação.. veja:

[txt-color=#ff0000]existe = False
'--- para cada arquivo que está no diretório
For Each f1 In fc
'--- seto o ADODB
Set rsDesconectado = New ADODB.Recordset

'-- Pego o tamanho do nome do arquivo
t = Len(f1.Name)

'-- verifico se inicia com Crec
'-- verifico se a extensão é .txt
If Mid(f1.Name, 1, 4) = "crec" And Mid(f1.Name, t - 2, 3) = "txt" Then
arquivo = f1.Name

'--- mensagem de status do sistema
'Text1.Text = Text1.Text & "Aguarde, classificando dados da NF" & vbCrLf

lArq = FreeFile
'--- Abro o Arquivo principal
Open "C:\coletor\batc\" & arquivo For Input As #lArq

Xtxt = FreeFile
'--- Abro o arquivo temporario
Open "C:\coletor\batc    emp.txt" For Append As #Xtxt
Do
'--- Ler uma linha do arquivo principal
Line Input #lArq, sLinha
'--- grava no temporário
Print #Xtxt, sLinha

Loop Until EOF(lArq)
Close #lArq
Close #Xtxt


'--- Deleto o original
fs.DeleteFile "C:\coletor\batc\" & arquivo, True
Sleep (1000)


'--- cria os campos
rsDesconectado.Fields.Append "EAN", adVarChar, 19
rsDesconectado.Fields.Append "Descricao", adVarChar, 35
rsDesconectado.Fields.Append "CodigoFornecedor", adVarChar, 6
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.ActiveConnection = Nothing
rsDesconectado.CursorLocation = adUseClient
'--- Abro o DB em memória
rsDesconectado.Open

lArq = FreeFile
'--- Abro o Arquivo principal renomeado para temp
'Open "C:\coletor\batc\" & arquivo For Input As #lArq
Open "C:\coletor\batc    emp.txt" For Input As #lArq

Xtxt = FreeFile
'--- Abro o arquivo principal para salvar os dados já classificados
Open "C:\coletor\batc\" & arquivo For Append As #Xtxt

lCont = 1
lPos = 0
Do While Not EOF(lArq)
'--- Leitura das Linhas de Texto
Line Input #lArq, sLinha

If Left(sLinha, 1) = "0" Then
Print #Xtxt, sLinha
End If
'--- Monta os Registros
If lCont > 1 Then
If Left(sLinha, 1) = "2" Then
trailler = sLinha
Exit Do
End If
'For lPos = 0 To Len(sLinha) Step 68
rsDesconectado.AddNew
rsDesconectado("EAN").Value = Mid(sLinha, lPos + 1, 19)
rsDesconectado("Descricao").Value = Mid(sLinha, lPos + 20, 35)
rsDesconectado("CodigoFornecedor").Value = Mid(sLinha, lPos + 55, 6)
rsDesconectado("NumeroLote").Value = Mid(sLinha, lPos + 61, 10)
rsDesconectado("Validade").Value = Mid(sLinha, lPos + 71, 4)
rsDesconectado("QuantColetada").Value = Mid(sLinha, lPos + 75, 6)
rsDesconectado("QuantInformada").Value = Mid(sLinha, lPos + 81, 6)
rsDesconectado("CodigoDivergencia").Value = Mid(sLinha, lPos + 87, 4)
rsDesconectado("QuantDivergencia").Value = Mid(sLinha, lPos + 91, 6)
rsDesconectado.Update
'Next
End If
lCont = lCont + 1
Loop

Close #lArq

rsDesconectado.Sort = ("EAN ASC, Descricao ASC")
Sleep (1000)


'-- Percorrendo o BD
Do While Not rsDesconectado.EOF
Item = ""
Item = rsDesconectado.Fields("EAN") & _
rsDesconectado.Fields("Descricao") & _
rsDesconectado.Fields("CodigoFornecedor") & _
rsDesconectado.Fields("NumeroLote") & _
rsDesconectado.Fields("Validade") & _
rsDesconectado.Fields("QuantColetada") & _
rsDesconectado.Fields("QuantInformada") & _
rsDesconectado.Fields("CodigoDivergencia") & _
rsDesconectado.Fields("QuantDivergencia")

If Item <> "" Then
Print #Xtxt, Item
End If
rsDesconectado.MoveNext
Loop

'--- gravo o trailler
Print #Xtxt, trailler
'--- fecho o temporario
Close #Xtxt

rsDesconectado.Close
Set rsDesconectado = Nothing[/txt-color]

Bem ficamos assim...
Esou em faze de homologação do sistema...
Sem ajuda de vcÂÂÂ's nao teria conseguindo,
Valeu mesmo galera e até a próxima...
Jefferson
Página 3 de 3 [30 registro(s)]
Tópico encerrado , respostas não são mais permitidas