orc 0 Denunciar post Postado Setembro 21, 2007 Bom Dia , tenho um arquivo de texto o qual tem vários códigos ( um em cada linha ) EX :0000000001 000000000200000000030000000004e preciso fazer uma varredura neste arquivo selecionando um código e ao fim dessa linha onde esta o codigo adicionar outra string ja ´ré definica em um edit Ex : 0000000001 string0000000002 outra string0000000003 string0000000004 string Compartilhar este post Link para o post Compartilhar em outros sites
Rodrigo Miss 1 Denunciar post Postado Setembro 21, 2007 E aew ? beleza? Uma idéia seria carregar o texto num StringList: var Arq: TStringList; Texto: AnsiString;begin Arq:= TStringList.Create; Arq.LoadFromFile('C:\teste.txt'); Texto:= StringReplace(Arq.Text, '0000000003','0000000003 Alterado', [rfReplaceAll]); Arq.Clear; Arq.Text:= Texto; Arq.SaveToFile('C:\teste.txt');end; Compartilhar este post Link para o post Compartilhar em outros sites
orc 0 Denunciar post Postado Setembro 21, 2007 E aew ? beleza?Uma idéia seria carregar o texto num StringList: var Arq: TStringList; Texto: AnsiString;begin Arq:= TStringList.Create; Arq.LoadFromFile('C:\teste.txt'); Texto:= StringReplace(Arq.Text, '0000000003','0000000003 Alterado', [rfReplaceAll]); Arq.Clear; Arq.Text:= Texto; Arq.SaveToFile('C:\teste.txt');end; Rodrigo infelizmente essa função de replace pra mim na serve pq a frente do codigo tb tem mais informações por isso gostaria de colocar no fim da string Compartilhar este post Link para o post Compartilhar em outros sites
Rodrigo Miss 1 Denunciar post Postado Setembro 21, 2007 você testou o codigo q eu te passei ?Teste ai deve funcionar sim .... pois ele vai dar replace somente na string que for passada .... Compartilhar este post Link para o post Compartilhar em outros sites
orc 0 Denunciar post Postado Setembro 21, 2007 você testou o codigo q eu te passei ?Teste ai deve funcionar sim .... pois ele vai dar replace somente na string que for passada ....é que num quero dar um replace quero adicionar um texto no fim da linha pq meu arquivo vem assim ó :000000001CAIXA ECONOMICA FEDERAL D.O. SÃO PAULO - JUDICIÁRIO I RECORTE AUTOMATICO 003815148405 000000002CAIXA ECONOMICA FEDERAL D.O. SÃO PAULO - JUDICIÁRIO I RECORTE AUTOMATICO 003815149107 000000003CAIXA ECONOMICA FEDERAL D.O. SÃO PAULO - JUDICIÁRIO I RECORTE AUTOMATICO 003815149201 ai no fim de cada linha adiciono uma string por isso não da pra dar o replace Compartilhar este post Link para o post Compartilhar em outros sites
Rodrigo Miss 1 Denunciar post Postado Setembro 21, 2007 Ah! agora saquei ... entao tente assim kra : var Arquivo: TStringList; x: Integer;begin Arquivo:= TStringList.Create; Arquivo.LoadFromFile('C:\Teste.txt'); for x:= 0 to Arquivo.Count -1 do begin if (Pos('000000002', Arquivo.Strings[x]) > 0) then begin Arquivo.Strings[x]:= Arquivo.Strings[x] + ' Alterado'; end; end; Arquivo.SaveToFile('C:\Teste.txt'); Compartilhar este post Link para o post Compartilhar em outros sites
LiMaO 0 Denunciar post Postado Setembro 21, 2007 Você não quer sobreescrever certo? Então tenta isto: vararquivo:Textfile;codigo:integer;begin codigo:=StrToInt(Edit1.Text); AssignFile(arquivo, 'C:\texto.txt'); Append(arquivo); Writeln(arquivo,codigo); Closefile(aqruivo); Nisso ai você vai pegar o que está no edit1 e escrever no arquivo, da próxima vez que escrever ele irá escrever em uma outra linha. O Append coloca seu ponteiro na ultima linha do arquivo ja. Compartilhar este post Link para o post Compartilhar em outros sites
orc 0 Denunciar post Postado Setembro 21, 2007 Ah! agora saquei ...entao tente assim kra : var Arquivo: TStringList; x: Integer;begin Arquivo:= TStringList.Create; Arquivo.LoadFromFile('C:\Teste.txt'); for x:= 0 to Arquivo.Count -1 do begin if (Pos('000000002', Arquivo.Strings[x]) > 0) then begin Arquivo.Strings[x]:= Arquivo.Strings[x] + ' Alterado'; end; end; Arquivo.SaveToFile('C:\Teste.txt'); Rodrigo Essa rotina é abençoada hein valeu Fica Com Deus Compartilhar este post Link para o post Compartilhar em outros sites
Rodrigo Miss 1 Denunciar post Postado Setembro 21, 2007 hehe certo!q bom q conseguimos resolver seu problema ...abraçao Compartilhar este post Link para o post Compartilhar em outros sites
orc 0 Denunciar post Postado Setembro 24, 2007 Ah! agora saquei ...entao tente assim kra : var Arquivo: TStringList; x: Integer;begin Arquivo:= TStringList.Create; Arquivo.LoadFromFile('C:\Teste.txt'); for x:= 0 to Arquivo.Count -1 do begin if (Pos('000000002', Arquivo.Strings[x]) > 0) then begin Arquivo.Strings[x]:= Arquivo.Strings[x] + ' Alterado'; end; end; Arquivo.SaveToFile('C:\Teste.txt'); Rodrigo preciso de mais uma força usando este mesmo código estou usando ele assim ó procedure TFMontarInterface.BtAdicionarVaraClick(Sender: TObject);Var CodIni, CodFim, x, I : Integer; VCodigo : String;begin CodIni := StrToInt( EdCodDe.Text ); CodFim := StrToInt( EdCodAte.Text ); Arquivo := TStringList.Create; Arquivo.LoadFromFile(EdCaminhoVara.Text); for I := CodIni to CodFim do begin for x:= 0 to Arquivo.Count -1 do begin vCodigo := StrZeros( IntToStr( i ), 9 ); if (Pos(VCodigo, Arquivo.Strings[x]) > 0) then begin Arquivo.Strings[x]:= Arquivo.Strings[x] + PadR( EdVara.Text, 250, ' ' ); end; end; end;onde eu faço essa busca linha por linha inserindo vários codigos diferentes deixando pra salvar o arquivo depois mais tem uma coisa ele só salva a ultima alteração e as restantes não aparecem gostaria que você me desse uma força pra poder salvar somente no fim que ele fizesse toda a busca e alterasse e adicionasse ao fim da linha de todos os códigos que busquei Compartilhar este post Link para o post Compartilhar em outros sites