inserndo texto...
Olá galera.
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?
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
Curtidas 0
Respostas
Asensio
25/11/2004
Olá,
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
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
Rômulo Barros
25/11/2004
... 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
Rômulo Barros
25/11/2004
[color=green:adb27dec7a][b:adb27dec7a]Corrigindo:[/b:adb27dec7a][/color:adb27dec7a]
[quote:adb27dec7a=´Undeclared Identifier´]
:wink: :wink: :wink: :wink: :wink:[/quote:adb27dec7a]
[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
Paulo_amorim
25/11/2004
Olá
Pode-se também trabalhar com o arquivo texto direto, sem uso de TStrings:
Undeclared Identifier, tua rotina deve gerar um Warning: tire o create do bloco finally...
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
Rômulo Barros
25/11/2004
Undeclared Identifier, tua rotina deve gerar um Warning: tire o create do bloco [b:3b420af00b]finally... [/b:3b420af00b]
:?: :?: :?: :?: :?:
GOSTEI 0
Paulo_amorim
25/11/2004
Olá
Tire o Create do bloco try..finally
Até+
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
Rômulo Barros
25/11/2004
Olá
Tire o Create do bloco try..finally
Até+
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
Massuda
25/11/2004
[quote:d3a0cb4bd2=´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.[/quote:d3a0cb4bd2]Seu raciocínio está correto. Entretanto, quando ocorre um problema em um construtor, o Delphi garante que o [b:d3a0cb4bd2]destrutor é executado automaticamente[/b:d3a0cb4bd2] e assim não ocorre o leak de memória.
É como se o compilador gerasse o seguinte código para seu construtor:
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.
É 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
Slyavalon
25/11/2004
Galera valeu mesmo, muito obrigado pelas dicas!!!!
GOSTEI 0
Paulo_amorim
25/11/2004
Olá
[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é+
[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
Rômulo Barros
25/11/2004
Olá
[quote:4bf4f90ddd=´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:4bf4f90ddd]Né isso?[/b:4bf4f90ddd]
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