LER ARQUIVO TXT E EXECUTAR A?ÃO PARA CADA LINHA

CMTCONTABILIDAD 15/01/2016 21:29:33
#456185
preciso de um apoio quanto a obtencao de um código que possa ler um arquivo txt tipo sintegra ou sped fiscal, que a cada linha lida ele possa fazer um loop se a codição do while for verdadeira, a ação seria texta o inicio do arquivo se o mesmo apresentar a informação tree, ele iria copiar uma quantidade x de caracteres numa determinada parte da linha e iria gravar em uma banco de dados no access, veja parte do arquivo:
60M20151201BE0511756100001113550012D00931500932800080600200000000003880000000000318699539
60A20151201BE0511756100001113551700000000388000
60I20151201BE0511756100001113552D00931800100000000000027000000005000000000000000000000000000001700000000000000
60I20151201BE0511756100001113552D00931900100000000000004000000002000000000000000000000000000001700000000000000
assim ele iria testa a existencia do registro 60 no inicio da linha, caso verdadeiro iria continuar a leitura da linha e a cada parte da mesma, conforme determinado, iria ler copia e gravar a informação que precisa, seguindo um layout de posicionamento

vou anexar um arquivo
KERPLUNK 15/01/2016 23:19:42
#456187
Muito simples:

dim arquivo as string
dim linha as string
open [Ô]C:\pasta\arquivo.txt[Ô] For input as #1
while not eof(1)
line input linha #1
if mid(linha, 3,1) = [Ô]X[Ô] then [ô]3 e 1 se referem a posição do caracter que você quer monitorar t
[ô]faça algo
end if
arquivo = arquivo + linha
loop
CMTCONTABILIDAD 22/01/2016 20:24:14
#456413
Citação:

:
Muito simples:


dim arquivo as string
dim linha as string
open [Ô]C:pastaarquivo.txt[Ô] For input as #1
while not eof(1)
line input linha #1
if mid(linha, 3,1) = [Ô]X[Ô] then [ô]3 e 1 se referem a posição do caracter que você quer monitorar t
[ô]faça algo
end if
arquivo = arquivo + linha
loop


Citação:

:
Muito simples:


dim arquivo as string
dim linha as string
open [Ô]C:pastaarquivo.txt[Ô] For input as #1
while not eof(1)
line input linha #1
if mid(linha, 3,1) = [Ô]X[Ô] then [ô]3 e 1 se referem a posição do caracter que você quer monitorar t
[ô]faça algo
end if
arquivo = arquivo + linha
loop



OBRIGADO PELA RESPOSTA, TODAVIA GOSTARIA MUITO DE QUE, SE POSSIVEL FOSSE MAIS EXPLICITO, VEJAMOS:
VEJO QUE VOCE DECLARA AS VARIAVEIS, OK, DEPOIS COMANDA A ABERTURA DO ARQUIVO, A PARTIR DESSE MOMENTO PEÇO DESCULPAS POIS ESTOU INICIANDO AGORA COM VBA, QUAL A NECESSIDADE DE [Ô] For input as #1[Ô], O [Ô]while not eof(1)[Ô] NESSE CASO INICIA A CONDICIONAL ENQUANTO ETC..., E A NEGATIVAÇÃO ? [Ô]not eof(1)[Ô], ASSIM ABUSANDO DA SUA BOA VONTADE PODERIA ME EXPLICAR A CONDICIONAL IF E COMO ELA IRIA FAZER PARA PULAR PRA OUTRA LINHA E PRA PROXIMA E PRA PROXIMA ONDE SEMPRE IRIA TESTAR A EXISTENCIA DO REGISTRO
CMTCONTABILIDAD 22/01/2016 20:36:24
#456414
O MEU OBJETIVO é NA VERDADE TESTA O REGISTRO NO INICIO DA LINHA E A PARTIR DAI IRIA SOLICITAR A COPIA, PELO MID() DE DADOS QUE EXISTAM NA LINHA PARA DENTRO DE UMA BASE DE DADOS, ISSO OCORRE PORQUE CADA REGISTRO TEM NA SEQUENCIA DA LINHA EM POSICOES PRE DETERMINADAS DADOS QUE SERIA COPIADO PARA DENTRO DE UMA TABELA DO ACCESS - EXEMPLO tBL_REG60 - |NUMERO CUPOM | ETC ...
ISSO QUER DIZER QUE ENQUANTO O INICIO DAS LINHA FOR 60(ALGUMA COISA (M POR EXEMPLO), ELE DEVERA COPIAR OS DADOS PARA A TABELA E QUANDO MUDAR DE REGISTRO PRA OUTRA E ASSIM SUBSEQUENTEMENTE, NAO SEI SE FUI CLARO, MAS SE ABRIR O ARQUIVO VERA O QUE EU ESTOU DIZENDO
ATT
AGRADEÇO DE ANTE MAO
KERPLUNK 22/01/2016 20:50:56
#456415
Vou comentar o código e veja se te ajuda:

dim arquivo as string [ô]variável que no final do processo conterá todo o conteúdo do arquivo
dim linha as string [ô]variável para ler cada linha
open [Ô]C:\pasta\arquivo.txt[Ô] For input as #1 [ô]abrindo o arquivo para leitura e dando a ele o [Ô]nome[Ô] de [Ô]#1[Ô]
while not eof(1) [ô]leia o arquivo [Ô]1[Ô] até o fim, EOF significa [Ô]End Of File[Ô] então, leia até o fim do arquivo
line input linha #1 [ô]Ler a linha atual do arquivo, isso vai acontecer com cada linha
if mid(linha, 3,1) = [Ô]X[Ô] then [ô]3 e 1 se referem a posição do caracter que você quer monitorar
[ô]faça algo caso o terceiro caractere seja [Ô]X[Ô] faça o que quiser
end if
arquivo = arquivo + linha [ô]adicionando o conteúdo da linha à variável que contém o arquivo
loop


Isso é o básico para ler arquivo e condicionar alguma ação conforme algum caractere em determinada posição em cada linha.
EDIT: Por favor evite escrever assim tudo em maiúsculo, fica horroroso.
CMTCONTABILIDAD 08/02/2016 12:56:45
#457365
Muito Obrigado pelo toque das maiúsculas - muito embora acredito que nao fique, todavia você é o alvo das minhas informações, irem fazer o possivel para seguir o seu conselho, outra quero lhe agradecer pela dica, acredito que tenha entendido a lógica, mas se nao for pedir muito, poderia complementar com o codigo que me permite copiar uma sequencia de caracteres para dentro de um BD do access, ou seja, depois que eu testar o inicio da linha irem usar novamente o função Mid(String, posicao_inicio, n), para copiar o que quero e colarem dentro do BD ja criado e é nessa parte que estou sem imaginar como fazer, agradeço por mais essa!!!
KERPLUNK 08/02/2016 23:30:49
#457393
Bom, copiar para dentro de um BD do access, a coisa muda de figura. Apesar de não ser de nível de dificuldade alto, acredito que você terá dificuldade. Conseguiu fazer pelo menos essa parte que você queria?
CMTCONTABILIDAD 06/03/2016 09:58:37
#458731
sim deu certo, eu entendi a logica quanto ao codigo, mas poderia me ajudar com essa outra situação?
KERPLUNK 06/03/2016 18:58:53
#458745
Citação:

:
sim deu certo, eu entendi a logica quanto ao codigo, mas poderia me ajudar com essa outra situação?


Diga lá
CMTCONTABILIDAD 29/03/2016 07:48:21
#460048
como fazer para o codigo fazer a leitura do campo definido no arquivo e posteriormente colar a informação no BD do access
PERCIFILHO 29/03/2016 12:30:51
#460077
Você já tem alguma coisa, algum código, exemplo, algo já começado? Tem noção de trabalhar com Banco de Dados, criar tabela, fazer conexão, inserir registros, deletar, etc?
Página 1 de 2 [12 registro(s)]
Faça seu login para responder