Ir para conteúdo
Fórum Script Brasil
  • 0

Como Imprimir Uma Coluna No Formato Que Eu Quero?


Señor Smoke

Pergunta

Fala galera.

tenho as seguintes colunas em um datagrid:

11;1166762356;3/8/2005;TELEFONICA 
onde: DDD ; DDD&TERMINAL ; DATA ; OP Mas eu quero gerar um txt nesse formato:
61;3997695;24/02/2005;BRT
onde : DDD ; TERMINAL ; DATA ; OP No caso eu teria que pegar a coluna DDD&TERMINAL e separá-la por ; na hora de gerar o arquivo. Como posso fazer isso? Este é o codigo que estou usando pra gerar o arquivo:
Private Sub Gera_Click()
Open "c:\PTS.txt" For Output As #1
Do Until Rs2.EOF
  Print #1, Rs2.GetString(, 100, ";", vbCrLf, "");
Loop
Close #1
MsgBox "Arquivo - PTS - gerado com sucesso !!"
End Sub
A saída por enquanto está assim:
11;1166762356;3/8/2005;TELEFONICA 

Link para o comentário
Compartilhar em outros sites

15 respostass a esta questão

Posts Recomendados

  • 0

Acredito que a idéia seria algo assim:

n = freefile()
Open "c:\PTS.txt" For Output As #n
Do Until Rs2.EOF
 s = Rs2.GetString(, 100, ";", vbCrLf, "");
 v = split(s, ";")
 ? #n, left(v(1), 2) & ";" & right(v(1), len(v(1))-2), v(2), v(3), v(4)
Loop
Close #n
MsgBox "Arquivo - PTS - gerado com sucesso !!"

Certo? wink.gif Não testei aqui, mas acho que seria isso.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Fala GrayMalkin,

to tentando fazer pelo codigo que você me passou:

Private Sub testa_Click()
n = FreeFile()
Open "c:\PTS.txt" For Output As #n
Do Until Rs2.EOF
s = Rs2.GetString(, 100, ";", vbCrLf, "")
v = Split(s, ";")
Print #n, Left(v(0), 2) & ";" & Right(v(0), Len(v(0)) - 2) & ";" & v(3) & ";" & v(4)
Loop
Close #n
MsgBox "Arquivo - PTS - gerado com sucesso !!"
End Sub
Só que tá dando um erro que não to conseguindo entender, o arquivo tá saindo assim:
27;92749111;3/8/2005;VIVO                          
2799074820
43;91435110;3/8/2005;TIM                           
4899787269
11;55138404;3/8/2005;TELEFONICA                    
1155172606
11;58925885;3/8/2005;TELEFONICA                    
1158941657
51;6371210;3/8/2005;BRASIL TELECOM                
516513279
54;3611101;3/8/2005;TELEFONICA                    
1140131624
11;40754720;3/8/2005;TELEFONICA                    
1140772568
24;99154852;3/8/2005;VIVO                          
2499154932
13;34261032;3/8/2005;TELEFONICA                    
1334265814
16;33244124;3/8/2005;TELEFONICA                    
1633247436

Ele tá imprimindo um numero de terminal sozinho a cada linha, não sei porque, help!


13;33721606;3/8/2005;TELEFONICA                    
1333722842
62;33542299;3/8/2005;BRASIL TELECOM                
6233574477
21;96372501;3/8/2005;VIVO                          
2196374104
31;92422588;3/8/2005;TIM                           
3192426285
31;96143650;3/8/2005;TELEMIG                       
3196144335
16;6542368;3/8/2005;TELEFONICA                    
166721139

Link para o comentário
Compartilhar em outros sites

  • 0

Até que consegui resolver com isto :

Private Sub testa_Click()
n = FreeFile()
Open "c:\PTS.txt" For Output As #n
Do Until Rs2.EOF
s = Rs2.GetString(, 100, ";", vbCrLf, "")
pos = InStr(1, s, " ")
s = Mid(s, 1, pos)
v = Split(s, ";")
Print #n, Left(v(0), 2) & ";" & Right(v(0), Len(v(0)) - 2) & ";" & v(1) & ";" & v(2)
Loop
Close #n
MsgBox "Arquivo - PTS - gerado com sucesso !!"
End Sub

Com isso ele gera o arquivo certo. Mas tem um porem, ele não pega o arquivo todo blink.gif e o arquivo, que deveria ter em torno de 6 MB fica só com 40Kb!!!

Agora se eu faço da maneira como estava fazendo antes, o formato não sai certo mas ele pega o arquivo todo.

Link para o comentário
Compartilhar em outros sites

  • 0
Acho que não é isso, coloquei o rs2.movnext em todos os lugares possiveis dentro do loop e ele dá erro e ainda continua gerando o arquivo incompleto.

Eu tendo a instrucao

 Do until rs2.eof

preciso ter o rs2.movenext?

Essa tá sinistra, me dá uma luz ai Graymalkin srsrrs

abs

Claro que precisa. A condição do loop é "faça até que seja o final de rs2", porém rs2 nunca vai chegar ao final se a posição do cursor não for sendo incrementada.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

entendi.

Bom estou fazendo assim e está dando erro:

Private Sub testa_Click()
n = FreeFile()
Open "c:\PTS.txt" For Output As #n
Rs2.MoveFirst
Do Until Rs2.EOF
s = Rs2.GetString(, 100, ";", vbCrLf, "")
pos = InStr(1, s, " ")
s = Mid(s, 1, pos)
v = Split(s, ";")
Print #n, Left(v(0), 2) & ";" & Right(v(0), Len(v(0)) - 2) & ";" & v(1) & ";" & v(2)
Rs2.MoveNext
Loop
Close #n
MsgBox "Arquivo - PTS - gerado com sucesso !!"
End Sub

Link para o comentário
Compartilhar em outros sites

  • 0

Não, não mostra out of range. O erro eu até já tirei mas o arquivo ainda não tá legal. Continua absuradamente menor.

O record set tem muuuitos registros cerca de 146500

Faz como o Graymalkin sugeriu, coloque um msgbox em cada linha ou coloque um breakpoint para debugar passo a passo. Retire também qualquer "on error resume next" que possa existir.
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...