IMPORTACAO DE DADOS PARA LAYOUT DIFERENTE

USUARIO.EXCLUIDOS 16/03/2005 12:17:10
#73230
Eu preciso fazer a importação de um layout para outro, gerando um arquivo texto novo. Gostaria também que se possível fosse mensionado quais os comandos queeu posso estar colocando para abrir o layout antigo e quais comandos para gerar um comando novo.
Segue a seguir os layouts:
Layout antigo
Tam TAMANHO DESCRIÇÃO

01- 05 - Codigo - codigo do cliente
02- 02 - dd - dia nascimento
03- 02 - mm - mes nascimento
04- 02 - aa - ano nascimento, são realmente apenas 2 digitos
05- 01 - sexo - M/F
06- 01 - fumante? - 0-Não / 1-Sim
07- 12 - salario - tam.12 decimal:2 - mascara: ##########,##
08- 20 - Nome - 20 caracteres
09- 10 - prem_01 - Primeira Premio
10- 10 - prem_02 - Segunda Premio


Layout novo

01- 04 - Codigo -
02- 50 - Nome - Nome do cliente - 50 carateres
03- 08 - nascto - Data nascimento (DD/MM/AAAA)
04- 01 - sexo - 0-M/1-F
05- 01 - Fumante - 0-Sim / 1-Não
06- 10 - salario - tam.10 decimal:2 - mascara: ########,##
07- 10 - premios - Total de premio (prem_01+prem_02) - mascara: ########,##
08- - observacoes - Observações não consta layout, portanto os campos ficam com espaços apenas. Tam.:30 caract.
09 - mes_nasto - Mes de nascimento (mm). Com teste para escrever por extenso.
USUARIO.EXCLUIDOS 16/03/2005 12:30:09
#73232
O arquivo a ser copiado seria assim...

Layout antigo

00001140185M0 60000Leandro Amorim Lagoa 100000 100000

O arquivo que seria gerado seria assim...
Layout Novo

00001Leandro Amorim Lagoa 1401198501 60000 2 Janeiro
USUARIO.EXCLUIDOS 17/03/2005 12:13:06
#73391
ALGUEM ME AJUDA!
USUARIO.EXCLUIDOS 17/03/2005 12:50:07
#73396
Resposta escolhida
mais ou menos isso:


Dim FSO As Object
Dim Arquivo As Object
Dim ArquivoNovo As Object

Set FSO = CreateObject("Scripting.FileSystemObject")
Call Fso.CreateTextFile(NomeArquivoNovo)

Set Arquivo = FSO.OpenTextFile(NomeArquivo, 1) 'ForReading
Set ArquivoNovo = FSO.OpenTextFile(NomeArquivoNovo, 2) 'ForWriting
While Not Arquivo.AtEndOfStream
sLinha = Arquivo.ReadLine

campo1 = Left(sLinha, 5)
campo2 = Mid(sLinha, 6, 4)

sLinhaNova = campo1 & campo2

ArquivoNovo.WriteLine sLinhaNova
Wend

Nas variáveis campo1, campo2, ... você "re-monta" o campo.
preenchendo com espaços ou com zeros, ou modificando o posicionamento, etc...

Espero ter ajudado
Tópico encerrado , respostas não são mais permitidas