Fórum Alterar Linha em Arquivo #321797
20/05/2006
0
.......................................
No meu trabalho eu tenho q pegar um disquete colocar no drive
entrar no MS-DOS e entrar no edit para fazer umas alterações no
Arquivo do Disquete...
Exemplo:
C:\>edit xam20051.mns
dai dentro desse arquivos existem linhas como essas
000000810206125000506
025425510306125000506
152845810406125000506
254885510506125000506
369525710606125000506
477852510706125000506
568798810806125000506
511115610906125000506
532568411006125000506
dai eu vou em Procurar e depois em Substituir (ctrl+P , ctrl+S)
pois tenho q substituir parte dessas linhas
mais especifico, preciso alterar o valor que esta entre os números 1
vou detalhar a linha aqui abaixo para exclarecimentos:
0000008 1 0206 1 2500 0506
0254255 1 0306 1 2500 0506
1528458 1 0406 1 2500 0506
2548855 1 0506 1 2500 0506
esse exemplo é as linhas que mensionei mais acima é que agora eu
coloquei espaço entre os dados apenas para compreenção de vocês.
nas linhas temos:
0000008 - Que é a Matrícula do cara.
1 - indica onde começa minha alteração.
0206 - data do pagamento (tenho q alterar apenas esse valor para 200602).
1 - indica o final de onde devo alterar.
2500 - valor pago.
0506 - Data de Vencimento.
000000810206125000506 - Linha Normal (Antes da Alteração).
00000081200602125000506 - Linha Alterada.
caso a data fosse 0306 teria q ser alterado para 200603 e etc
Minha idéia... fazer um programa que altere os dados q estão entre o números 1 (Ex.: de 0206 para 200602).
Tem + uma coisinha por exemplo as vezes a data de pagamento q fica entre os numeros 1 se repetem na mesma linha so q na parte de data de vencimento:
Exemplo:
0000008 1 0506 1 2500 0506
eu so posso alterar o valor que esta entre os números 1
Sei q no Visual Basic tem o ´Modo de Acesso Aleatório´ que da pra mim fazer algo nesse estilo
porem no delphi não tenho a minima ideia de como fazer nem por onde começar...
alguem pode me ajudar?
desde já agradeço a todos pela paciência comigo...
abraço a todos irmãos!!
Topetebg
Curtir tópico
+ 0Posts
20/05/2006
Amarildo
Gostei + 0
20/05/2006
Topetebg
exatamente...
tenho bom conhecimento de delphi apesar de estar iniciando na programação
+ ate hoje todos aplicativos que desenvolvi eram relacionados a banco de dados Access
ou seja naum sei quase nada de manipulação de arquivos de dados
se puder me ajudar eu agradeço muito!!!
vlw irmão!
Gostei + 0
20/05/2006
Bon Jovi
function TForm1.Altera(Linha: string): string; var AnoMes: string; Ano, Mes: integer; ParteInicial, ParteFinal: string; begin ParteInicial := Copy(Linha, 1, 8); ParteFinal := Copy(Linha, 13, Length(Linha)); AnoMes := Copy(Linha, 9, 4); Ano := StrToInt(Copy(AnoMes, 3, 2)); Mes := StrToInt(Copy(AnoMes, 1, 2)); //Se for sempre ano 2000. Senao faça um if! Ano := Ano + 2000; Result := ParteInicial + FormatFloat(´0000´, Ano) + FormatFloat(´00´, Mes) + ParteFinal; end; procedure TForm1.Button1Click(Sender: TObject); var i: integer; Arquivo: TStringList; begin Arquivo := TStringList.Create; try Arquivo.LoadFromFile(´c:\teste.txt´); for i := 0 to Arquivo.Count - 1 do Arquivo[i] := Altera(Arquivo[i]); Arquivo.SaveToFile(´c:\teste_alterado.txt´); finally Arquivo.Free; end; end;
Gostei + 0
20/05/2006
Topetebg
porem naum funcionou :(
[error]ManutUnit.pas(23): Undeclared identifier: ´Altera´
[error]ManutUnit.pas(29): Undeclared identifier: ´Linha´
[error]ManutUnit.pas(30): Incompatible types
[error]ManutUnit.pas(30): Incompatible types
[error]ManutUnit.pas(32): Incompatible types
[error]ManutUnit.pas(39): Undeclared identifier: ´Result´
[error]ManutUnit.pas(52): Undeclared identifier: ´Altera´
[error]ManutUnit.pas(32): Incompatible types
o q pode ser?
Gostei + 0
20/05/2006
Topetebg
era uma coisinha muito simples
em
function form1.Altera(.....
so tirei o form1 ficou
function Altera(...
funcionou perfeitamente
vlw amigo...
vou estudar o Algoritimo que me enviou pra me aprofundar +
vlwwwwwwwwwwww
=***
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)