A minha dica não precisaria usar classe.
procedure FileContentErase(const AFileName: TFileName); var lArq: File; begin if FileExists(AFileName) then begin AssignFile(lArq, AFileName); // abre o arquivo e posiciona no início Reset(lArq, 1); // trunca o conteúdo do arquivo a partir da posição atual Truncate(lArq); // fecha o arquivo CloseFile(lArq); end; end; A diferença é que este método não mexe na data de criação do arquivo, uma vez que ele apenas abre e reescreve (por assim dizer) o conteúdo do arquivo. Se houver a necessidade de se manter a data de criação do arquivo, essa rotina é ideal. E melhor ainda, funciona pra qualquer tipo de arquivo, independente de ser arquivo texto ou não. Sds. De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em nome de Vitor Yahoo Enviada em: quarta-feira, 3 de março de 2010 12:16 Para: delphi-br@yahoogrupos.com.br Assunto: RES: [delphi-br] Re: [lista-delphi] Apagar conteúdo de Arquivo TXT Tem um jeito que eu considero mais tranqüilo ainda: Var VStr : TStrings; Begin VStr := TStringList.Create( ); VStr.LoadFromFile( arquivo.txt ); VStr.Text := ; VStr.SaveToFile( arquivo.txt ); VStr.Free( ) End; _____ De: delphi-br@yahoogrupos.com.br <mailto:delphi-br%40yahoogrupos.com.br> [mailto:delphi-br@yahoogrupos.com.br <mailto:delphi-br%40yahoogrupos.com.br> ] Em nome de Marcos Abreu Ferreira Enviada em: quarta-feira, 3 de março de 2010 11:21 Para: lista-del...@yahoogrupos.com.br <mailto:lista-delphi%40yahoogrupos.com.br> Cc: delphi-br@yahoogrupos.com.br <mailto:delphi-br%40yahoogrupos.com.br> Assunto: [delphi-br] Re: [lista-delphi] Apagar conteúdo de Arquivo TXT Augusto, tenta assim... *var* * arq: TextFile;* * txtArq: String;* *begin* * txtArq := 'C:\windows\ERP\log_sistema.text';* * if FileExists(txtArq) then* * begin * * AssignFile(arq, txtArq);* * Rewrite(arq);* * WriteLn(arq, '');* * CloseFile(arq);* * end;* *end;* Att, Marcos A. Ferreira São Paulo - Brasil (+55) 11 9309-3936 MSN: maferre...@hotmail. <mailto:maferreira%40hotmail.it> it Google Talk: maf.decisiva Skype: m_abreuferreira LinkedIn: http://www.linkedin <http://www.linkedin.com/in/maferreira/> .com/in/maferreira/ Esta mensagem pode conter informação confidencial e/ou privilegiada. Se você não for o destinatário ou a pessoa autorizada a receber esta mensagem, não pode usar, copiar, ou divulgar as informações nela contidas ou tomar qualquer ação baseada nestas informações. Se você recebeu esta mensagem por engano, por favor, avise imediatamente o remetente, respondendo o email e em seguida, apague-o. Agradecemos sua cooperação. This message may contain confidential and/or privileged information. If you are not the addressee or authorized to receive this for the addressee, you must not use, copy, disclose or take any action based on this message or any information herein. If you have received this message in error, please, advise the sender immediately by reply e-mail and delete this message. Thank you for your cooperation. Antes de imprimir pense em sua responsabilidade e compromisso com o MEIO AMBIENTE. ENVIRONMENT commitment and responsibility, think about Before Printing. Em 3 de março de 2010 10:33, Augusto Bondan Nascimento < augustobondan@ <mailto:augustobondan%40gmail.com> gmail.com> escreveu: > > > Estou tendo dificuldades em apagar o conteúdo de um arquivo texto. > > por exemplo: > > AssignFile(f,'c:\windows\ERP\log_sistema.text'); > if fileExists('C:\windows\ERP\log_sistema.text') then > > begin > > Append(f) > rewrite(F); > erase(f); > closefile(F); > > end; > > O código não está com todos esses comandos, mas gostaria de saber qual > deles > consegue apagar o que está escrito no arquivo. > > Não quero deletar o arquivo, apenas o conteúdo. Achei que o comando > "erase(f)" conseguiria, mas não funciona. > > Atenciosamente; > [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]