Fórum inserndo texto... #260072
25/11/2004
0
o seguinte: preciso de uma rotina para inserir uma frase em um arquivo txt salvo no HD. Sendo que pulando uma linha.
Como faço?
Slyavalon
Curtir tópico
+ 0Posts
26/11/2004
Asensio
1º Você quer savar esse textos no seu HD ou quer pegar um arquivo salvo do HD e inserir as frases como vc quer?
Só preciso entender isso para poder passar as cordenadas corretas para você.
Fui
Gostei + 0
26/11/2004
Rômulo Barros
... Var Linhas : TStrings; Begin Try Linhas := TStringList.Create(); Linhas.LoadFromFile(´C:\Arquivo.txt´); Linhas[1] := ´Minha Frase na Segunda Linha do Arquivo´; Linhas.SaveToFile(´C:\Arquivo.txt´); Finally End; End;
:wink: :wink: :wink: :wink: :wink:
Gostei + 0
26/11/2004
Rômulo Barros
[quote:adb27dec7a=´Undeclared Identifier´]
... Var Linhas : TStrings; Begin Try Linhas := TStringList.Create(); Linhas.LoadFromFile(´C:\Arquivo.txt´); Linhas[1] := ´Minha Frase na Segunda Linha do Arquivo´; Linhas.SaveToFile(´C:\Arquivo.txt´); Finally End; End;
:wink: :wink: :wink: :wink: :wink:[/quote:adb27dec7a]
... Var Linhas : TStrings; Begin Try Linhas := TStringList.Create(); Linhas.LoadFromFile(´C:\Arquivo.txt´); Linhas[1] := ´Minha Frase na Segunda Linha do Arquivo´; Linhas.SaveToFile(´C:\Arquivo.txt´); Finally FreeAndNil(Linhas); End; End;
Gostei + 0
26/11/2004
Paulo_amorim
Pode-se também trabalhar com o arquivo texto direto, sem uso de TStrings:
var txt: TextFile; begin AssignFile(txt, <seu arquivo>); try Reset(txt); Writeln(txt, Chr(13) + <sua string>); finally CloseFile(txt); end; end;
Undeclared Identifier, tua rotina deve gerar um Warning: tire o create do bloco finally...
Linhas := TStringList.Create;
try
{ ... }
finally
Linhas.Free;
end;Gostei + 0
26/11/2004
Rômulo Barros
:?: :?: :?: :?: :?:
Gostei + 0
26/11/2004
Paulo_amorim
Tire o Create do bloco try..finally
Linhas := TStringList.Create(); try Linhas.LoadFromFile(´C:\Arquivo.txt´); Linhas[1] := ´Minha Frase na Segunda Linha do Arquivo´; Linhas.SaveToFile(´C:\Arquivo.txt´); finally FreeAndNil(Linhas); End;
Até+
Gostei + 0
26/11/2004
Rômulo Barros
Linhas := TStringList.Create(); try Linhas.LoadFromFile(´C:\Arquivo.txt´); Linhas[1] := ´Minha Frase na Segunda Linha do Arquivo´; Linhas.SaveToFile(´C:\Arquivo.txt´); finally FreeAndNil(Linhas); End;
Agora eu entendi :wink:
Mas, se eu fizer isso e ocorre qualquer erro durante o CREATE da minha TStrings, a mesma não será liberada de memória. [b:312d47b832]Né isso?[/b:312d47b832]
Gostei + 0
27/11/2004
Massuda
É como se o compilador gerasse o seguinte código para seu construtor:
constructor TFooBar.Create; // ... begin try // seu código aqui except Free; end; end;
Por outro lado, isso significa que o destrutor de uma classe deve estar sempre preparado para o caso do objeto não ter sido completamente construído.
Gostei + 0
28/11/2004
Slyavalon
Gostei + 0
29/11/2004
Paulo_amorim
[quote:ebfd8591e7=´Undeclared Identifier´]Mas, se eu fizer isso e ocorre qualquer erro durante o CREATE da minha TStrings, a mesma não será liberada de memória. [b:ebfd8591e7]Né isso?[/b:ebfd8591e7][/quote:ebfd8591e7]
Mas se ocorrer um erro durante o CREATE ele não terá sido criado, e portanto não haverá o que ser destruído, certo?
Por exemplo, se ele não encontrar o arquivo especificado, ele irá gerar erro e não será instanciado... portanto não será necessário o Free..
Até+
Gostei + 0
29/11/2004
Rômulo Barros
Mas se ocorrer um erro durante o CREATE ele não terá sido criado, e portanto não haverá o que ser destruído, certo?
Por exemplo, se ele não encontrar o arquivo especificado, ele irá gerar erro e não será instanciado... portanto não será necessário o Free..
Até+[/quote:4bf4f90ddd]
[color=green:4bf4f90ddd][b:4bf4f90ddd]Entendi, Paulo A. Obrigado !!![/b:4bf4f90ddd][/color:4bf4f90ddd] :wink: :wink: :wink:
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)