|
Postada em 05/06/2008 14:51 hs
Galera boa tarde !!
Estou com o seguinte problema, preciso remover de um arquivo texto o numero 1 que esta na coluna 301 de alguns registros do arquivo e gerar um novo arquivo com todos os dados do arquivo anterior mas com a coluna 301 vazia, tentei com o replace mas nao estou tendo sucesso, alguém tem alguma sugestao ? Segue o codigo que tentei fazer.
Public Function altera_melhoria() Dim flag As String Dim texto As String 'FAZENDO A CRIAÇÃO DO ARQUIVO nomearquivo = "TESTE" & Now & ".txt" 'criando um novo arquivo nomearquivo = Replace(nomearquivo, " ", "") nomearquivo = Replace(nomearquivo, "/", "") nomearquivo = Replace(nomearquivo, ":", "")
'inicializa arqdest = FreeFile Open App.path & "" & nomearquivo For Random As arqdest Close #arqdest MsgBox "O arquivo '" & nomearquivo & "'", , "Arquivo Criado com sucesso" 'ABRINDO O ARQUIVO CRIADO Open App.path & "" & nomearquivo For Append As arqdest 'ABRINDO O ARQUIVO DE ORIGEM arqori = FreeFile Form2.CommonDialog1.DialogTitle = "Selecione o arquivo para pesquisa" Form2.CommonDialog1.InitDir = App.path Form2.CommonDialog1.Filter = "Arquivos texto (*.txt)|*.txt| Todos os arquivos (*.*)|*.*|" Form2.CommonDialog1.FilterIndex = 2 Form2.CommonDialog1.ShowOpen caminho = Form2.CommonDialog1.FileName 'inicializa Open caminho For Input As arqori Do Until EOF(arqori) Line Input #arqori, linha flag = Mid(linha, 301, 1) texto = Replace(flag, "1", "L") If flag = "1" Then totallinhas = totallinhas + 1 Print #arqdest, linha End If Loop MsgBox "Operacao concluida !" Close #arqori Close #arqdest End Function
|
|
|
|
Treze
|
SÃO VICENTE SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 05/06/2008 15:03 hs
Luiz só não entdi coluna 301, isto é porque o seu arquivo está tabulado, ou é uma string com mais 300 caracteres?
|
|
|
|
Postada em 05/06/2008 16:40 hs
E ai blz
Este é um arquivo tabulado, ou seja este arquivo esta dentro de um layout para ser processado em um banco de dados, mas estou precisando tratar estes arquivos por um tempo pois esta havendo problema nesta flag que esta na coluna 301, preciso tirar o numero 1 desta coluna e deixar em branco ate que o problema no sistema seja resolvido.
|
|
|
Treze
|
SÃO VICENTE SP - BRASIL
|
|
Postada em 05/06/2008 17:15 hs
Vamos primeiro o instr não vai funcinar o replace pode alterar mais de uma string no arquivo texto, então temos de descobrir primeiro um modo de reconhecer as tabulações, para podermos fazer a alteração. uma dica pegue manualmente uma destas linhas até onde está o numero (rwrwe 10202 akajksk 10sojjksjk kakdksdjk 1) tetetkalala cole dentro de um len para saber a quantidade de strings tem até este numero e depois sim usar o replace da seguinte forma supondo que até o 1 existem 20 caracteres, numero descoberto com a dica anterior então você vai fazer isto: ' veja bem eu não contei as tabulações e sim os caracteres ' outra dica pra saber onde está a tabulação é contar o numero de caracteres por TAB ' e multiplicar por 301 que é a quantidade de tabulações flag = Mid(linha, 18,5) ' repare que usei a quant de carateres, 18 são 2 caracteres antes ' e 5 para que o mid retire cinco caracteres onde vai estar este 1 ' ex: " 1 " texto = Replace(flag, "1", "L") ' e agora você faz a substituição
se não entendeu diga
|
TÓPICO EDITADO
|
|
|
|
|
Postada em 05/06/2008 18:02 hs
E ai Treze
Neste caso que vc explicou, o arquivo nao esta com tabulacoes, este arquivo esta dentro de um layout padrao, exemplo o codigo esta na coluna 1 ate 10 ou nome esta na coluna 36 ate a 72, ou seja há um inicio e fim para cada tipo de registro neste caso o que preciso apagar é o numero 1 da coluna 301, coloquei aquele "L" só para ver o que estava havendo mas a ideia e deixar a coluna em branco.
|
|
|
Treze
|
SÃO VICENTE SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 05/06/2008 18:11 hs
Tem como postar uma linha deste aqruivo pra nós analizarmos
|
|
|
|