Fórum ler uma linha txt e deletar #328007
24/08/2006
0
por ex:
coleta.txt
0000050214060821075107040102
0000600261060821075344040102
0000050038060822075551040102
0000050140060822075628040102
0000050045060823075803040102
0000050141060823075950040102
0000050116060823080100040102
0000050076060823081028040102
0000050034060823085922040102 /060823/ e a data
preciso que ler e quando achar data 060822 deletar desta linha para traz
se alguem poder ajuda agradece pois conheço muito pouco em delphi
Att.
Emerson
Emerson1
Curtir tópico
+ 0Posts
24/08/2006
Siam
Utilize um TStringList, execute LoadFromFile, faça as operações e depois execute SaveToFile.
Gostei + 0
25/08/2006
Beto_martini
Ex:
Abre arquivo 1
abre arquivo 2
lê arquivo 1 até encontrar a data
à partir daí, grave o restante no arquivo 2.
Se não souber como fazer as operações entre em contato. Ok?
Gostei + 0
25/08/2006
Fabiano Góes
procedure NewTxt( pathArq, Data: String ); var Arquivo, NovoArq: TStringList; i, Index: Integer; linha: String; begin Index := 0; Arquivo := TStringList.Create; NovoArq := TStringList.Create; try Arquivo.LoadFromFile(pathArq); for i := 0 to Arquivo.Count - 1 do begin linha := Arquivo.Strings[i]; if copy(linha, 11, 06) = Data then begin index := i + 1; Break; end; end; for i := Index to Arquivo.Count - 1 do NovoArq.Add(Arquivo.Strings[i]); NovoArq.SaveToFile(pathArq); ShowMessage(´concluido !!!´); finally FreeAndNil(Arquivo); FreeAndNil(NovoArq); end; end;
usar assim:
NewTxt(´c:\coleta.txt´, ´060822´);
obs: se a sua condição é apenas a data ´060822´, esta função conta apartir da primeira que encontra.
testa e posta se funcionou ou não !!!
abraço !!!
Gostei + 0
27/08/2006
Antseralves
procedure TForm1.DelData(PathArq,Data : string);
var S : TstringList;
I,Cont : integer;
begin
S := TStringList.Create;
S.LoadFromFile(PathArq);
Cont := S.Count;
I := 0;
while I < Cont do
begin
if Copy (S.Strings[I],1,8) = Data then
begin
S.Delete(I);
Dec(Cont);
end
else
Inc(I);
end;
S.SaveToFile(PathArq);
S.Free;
end;
Gostei + 0
28/08/2006
Emerson1
muito obrigado deu certinho...agora eu vou pensar um jeito de o sistema olhar data do dia - 30 e jogar la no codigo que vc me passou
valeu
Gostei + 0
28/08/2006
Fabiano Góes
não entendi o que você dize com:
agora eu vou pensar um jeito de o sistema olhar data do dia - 30 e jogar la no codigo que vc me passou
se você postar mais detales eu posso tentar te ajudar.
abraço !!![/code]
Gostei + 0
29/08/2006
Emerson1
ex: quando clicar no botão o sistema olhar a data do dia 29/08/2006 pega essa data (- 30)dias=060729 e colocar no parametro
NewTxt(´c:\coleta.txt´, ´060729´);
fabiano góes desculpa se não fui claro.... mas ja agradeço sua ajuda muito obrigado......
Gostei + 0
31/08/2006
Fabiano Góes
descupe a demora, eu estava meio enrolado aqui no trampo.
se você ainda não conseguiu a solução pra sua data-30 ai vai:
NewTxt(´c:\coleta.txt´, FormatDateTime( ´yymmdd´, (Now-30) ) );
cara nem testei, teata ai depois post pra saber se funcionou;
Gostei + 0
31/08/2006
Emerson1
deu certo...muito obrigado......valeuuuuuu
Gostei + 0
31/08/2006
Fabiano Góes
se precisar tamo ai !!!!
abraxxxx !!!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)