Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

marvazoler

Ler arquivo TXT

Recommended Posts

Olá galera beleza?

Tenho um arquivo txt e preciso altera uma determinada linha neste aquivo, tem como

eu fazer isso?

Tipo: Nesse arquivo tem 45 linhas, e dentro na linha 40 tem uma data entre outros dados, tem como pelo delphi

alterar essa linha, modificando a data?

 

Desde já agradeço!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja se esta função lhe ajuda:

 

function alteraLinhaTxt(Txt: AnsiString; Linha: Integer; NovoTexto: string): Boolean;
var
	Arquivo : TStrings;
begin
	Result := false;
	Arquivo := TStringList.Create;
	try
		Arquivo.LoadFromFile(Txt);
		if (Linha > Arquivo.Count+1) then
			Exit;
		Arquivo[Linha] := NovoTexto;
		Arquivo.SaveToFile(Txt);
		Result := true;
	except
	end;
	Arquivo.Free;
end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigão, acho que você n entendeu!

 

Tenho um aquivo txt e preceiso alterar atraves do Delphi na linha tal na posição x, como eu ]

 

 

contorno isso, ou seja na linha x posição y quero altera a data por exemplo,como?

Compartilhar este post


Link para o post
Compartilhar em outros sites

É só adaptar a função:

 

function alteraLinhaTxt(Txt: AnsiString; LinhaX, LinhaY: Integer; NovoTexto: string): Boolean;
var
	Arquivo : TStrings;
	Cont : Integer;
begin
	Result := false;
	Arquivo := TStringList.Create;
	try
		Arquivo.LoadFromFile(Txt);
		if (LinhaX > Arquivo.Count+1) then
			Exit;
		if (LinhaY > Length(Arquivo[LinhaX])) or (LinhaY+Length(NovoTexto) > Length(Arquivo[LinhaX])) then
			Exit;

		for Cont := 0 to Length(NovoTexto)-1 do
			Arquivo[LinhaY+Cont] := NovoTexto[Cont];
		Arquivo.SaveToFile(Txt);
		Result := true;
	except
	end;
	Arquivo.Free;
end;

 

OBS.: Não veja as letras X, Y das variaveis LinhaX e LinhaY com um plano carteziano padrão (so fosse, teriamos que trocar LinhaX por LinhaY e vice e versa)

 

http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Camara, do jeito que eu falar agora, vai saber!!

 

eu tenho 5 linhas, do arqvivo txt, certo!! exemplo!

 

0001000112 A23032010 17:30

0001000112 A23032010 17:30

0001000112 A23032010 17:30

0001000112 A23032010 17:30

0001000112 A23032010 17:30

 

Eu que fazer atravez de um botão, a seguinte ação!!

 

 

Colocar em um form 3 objetos

 

Text1 - Data

Text2 - Hora

 

Botão

 

 

Quando eu preencher os campos data e hora

faz o seguite:

 

altera a data e a hora no arquivo desejado,

Ou seja ele vai na posição onde fica da a data altera

para a data que contem no text1, que de data, semenhantemente

no campo hora!!

 

Como eu faço isso!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

:huh:

Cara, acho que você não entendeu a função

 

veja este exemplo:

 

Você tem esta linha: "0001000112 A23032010 17:30"; que é a quinta linha do arquivo (LinhaX) e deseja alterar a hora , que é 17:30, para 20:56 (NovoTexto).

 

Para tal, segue-se os seguintes passos:

1) Verifica-se que a hora inicia-se no caractere 22 da linha, ou seja, LinhaY = 22;

 

2) Temos então então "LinhaX" = 5, "LinhaY = 22" e a "NovoTexto = 20:56";

 

3) Agora basta chamar a função com os parametros encontrados:

alteraLinhaTxt('C:\meuarquivo.txt', 5, 22, '20:56')

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.