USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  LAYOUT DE ARQUIVO
LUIZ PEDRO
SAO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 31/07/2008 19:35 hs            
E ai galera

Estou com o seguinte problema, tenho varios arquivos que estao com registros separados por ponto e virgula ou por espacos, preciso ler estes arquivos e encaixar cada campo na coluna conforme layout pre definido, minha duvida é como faço para o vb ler estes campos no arquivo texto e gerar um outro arquivo dentro do layout definido.
   
CSRocha
BRASILIA
DF - BRASIL
ENUNCIADA !
Postada em 31/07/2008 21:33 hs            
Você vai ter que abrir no modo INPUT, ler cada registro tratar cada linha (registro) com a função SPLIT, que dividirá a linha em outro array.

Supondo que tenha uma linha do arquivo (dê exemplos do teu caso):

strLinha = "Paulo José;Brasília;DF;61-3390-0999"

str1 = Split(strLinha,";")
For n = Lbound(str1) to Ubound(str1)
debug.print str1(n)   <---- aqui você formata como pretende e grava em outro arquivo
Next n

Basicamente é isso. Dê mais detalhes do teu layout e arquivos a serem tratados.
   
LUIZ PEDRO
SAO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 01/08/2008 02:25 hs            
Basicamente é o seguinte, ja possuimos um layout definido, por exemplo o codigo do cliente possui 7 caracteres e em seguida vem o cpf com 15 caracteres e na coluna seguinte o nome, mas so que os arquivos que recebo e preciso importar para o banco nao estao neste layout, eles estao vindo separados por ponto e virgula ou outro caracter como o | por exemplo, o que preciso fazer, preciso a partir deste arquivo ler as linhas, e gerar em outro arquivo estes dados dentro do layout especificado, preciso que o vb leia estas linhas e identifique os campos e ponha no layout especificado para depois sim importar para base.
   
CSRocha
BRASILIA
DF - BRASIL
ENUNCIADA !
Postada em 01/08/2008 12:36 hs            
Fiz um exemplo aqui, baseado em tuas informações.

1. Criei um arquivo TXT com dados imaginários, que teria esse conteúdo:

012456;098.786.456-99;José Maria da Silva
012345;736.234.455-99;Antonio carlos Pereira
01234;262.234.122-99;Maria Helana Dourado

Salve esses dados como origem.txt, na pasta que preferir.

2. Faça esse projeto no VB:

' na seção geral
Dim strLInhas As String, str1 As Variant
Dim str2(10), str3(10)

' coloque um botão para acionar a rotina:
Private Sub Command1_Click()
  Dim t1 As Integer, t2 As Integer, t3 As Integer
  Dim aux1 As String, aux2 As String, aux3 As String
  
  Open "c:     emporigem.txt" For Input As #1
  Open "c:     empdestino.txt" For Output As #2
  conta = 0
    str3(0) = 7: str3(1) = 15: str3(2) = 50
  While Not EOF(1)
    Input #1, strLInhas
    str1 = Split(strLInhas, ";") ' o delimitador deve ser o caractere dos teus arquivos.
      For n = LBound(str1) To UBound(str1)
        t1 = Len(str1(n)): aux1 = str1(n) & Space(str3(n) - Len(str1(n)))
        aux2 = aux1
        str2(conta) = str2(conta) & aux2
      Next n
    Print #2, str2(conta)
    conta = conta + 1
  Wend
  Close #1
  Close #2
  MsgBox "Fim do processo"
  End
End Sub

Atente que no meu caso usei a pasta c:     emp para ler e gravar os arquivos. Mude nas 2 linhas OPEN de acordo com o seu path.

Esta linha (str3(0) = 7: str3(1) = 15: str3(2) = 50) tem o tamnho dos campos que ficarão na gravação final. Você deverá estudar o teu layout e informar cada um com o numero de caracteres pretendidos.

Coloquei espaços depois dos dados. Para colocar ANTES, inverta esse trecho:

t1 = Len(str1(n)): aux1 = str1(n) & Space(str3(n) - Len(str1(n)))
para
t1 = Len(str1(n)): aux1 = Space(str3(n) - Len(str1(n))) & str1(n)

Qualquer duvida, chame...

   
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página