Fórum Dúvida - TXT #374283
29/08/2009
0
assignfile(arquivo,opendialog1.FileName); reset(arquivo); // ARMAZENA readln(arquivo,conteudotxt);
Tenho uma pergunta fiz um programa porém ele só ler a quantidade de linha que eu quiser.. como eu faço para ele ler todo o txt independendo da quantidade de linha que o mesmo tenha??
Obrigado!! ;)
Ipeixoto
Curtir tópico
+ 0Posts
29/08/2009
Prmcibor
assignfile(arquivo,opendialog1.FileName); reset(arquivo); // ARMAZENA WHILE NOT EOF(arquivo) do begin readln(arquivo,conteudotxt); end;
Gostei + 0
30/08/2009
Marco Salles
procedure TForm1.Button1Click(Sender: TObject); begin opendialog1.InitialDir:=´C:\CaminhoPreferido\etx´; if opendialog1.Execute then richedit1.Lines.LoadFromFile(openDialog1.FileName); end;
Gostei + 0
30/08/2009
Ipeixoto
opendialog1.InitialDir := ´C:\´;
if opendialog1.Execute then //LER O ARQUIVO
assignfile(arquivo,opendialog1.FileName);
reset(arquivo);
WHILE NOT EOF(arquivo) do
begin
readln(arquivo,textoo);
for i := 1 to length(textoo) do {varre da primeira posição até a última}
beginDeixa eu tentar explicar.. e porque o seguinte eu to carregando um arquivo txt de multiplas linhas.. depois eu teria que salvar esse conteudo (textfile) em um string.. após isso ler caractere por caractere para fazer um processo de encriptação.. que é o que está ocorrendo no último FOR..(matéria da encriptação da faculdade.) e após encriptado simplismente mandar esse texto encriptado (string) que irá enviar como parametro para um procedimento para salvar em outro txt.. meu problema e só conseguir ler todo esse arquivo txt multiplas linhas e por em uma string.. eu tava tentando com o código acima só que da erro 104 I/o =/
alguém pode me ajudar?
Gostei + 0
30/08/2009
Marco Salles
procedure TForm1.Button1Click(Sender: TObject); var Lista:TStrings; idx:integer; begin Lista:=TStringList.Create; try lista.LoadFromFile(´CaminhoDoArquivoValido´); for idx:= 0 to Lista.Count - 1 do lista.Strings[idx]:=´Posso a cada Linha Alterar o Conteudo´ ; Lista.SaveToFile(´QuerSalvarAonde\ArquivoEncriptografato.txt´); finally Lista.Free; end; end; end;
é claro que aonde vc lê
lista.Strings[idx]:=´Posso a cada Linha Alterar o Conteudo´ ;
Provavelmente é uma função Criptografia
function Criptografar(const Str:String):String; begin result:=Str; result:=´Muda Aqui Faça Assim Modifique´; end;
lista.Strings[idx]:=Criptografar( lista.Strings[idx]);
Gostei + 0
31/08/2009
Ipeixoto
eu tenhu uma txt por exemplo:
aajsnia
asjnaisjn
ajsniahs
ajsniahsniasj
ou seja vários caracteres em várias linhas diferentes.. e eu tenho que ler caractere por caractere fazer a função de encriptar entendeu??
não colocar toda uma linha ou todo um txt em uma string pq dependendo do tamanho pode da estouro.. =//
Gostei + 0
31/08/2009
Marco Salles
procedure TForm1.Button2Click(Sender: TObject); var Lista:TStrings; idx,i,Tamanho:integer; linha:String; begin Lista:=TStringList.Create; try lista.LoadFromFile(´CaminhoDoArquivoValido´); for idx:= 0 to Lista.Count - 1 do begin Linha:=lista.Strings[idx]; tamanho:=length(linha); for i:=1 to tamanho do Linha[i]:=´A´; //Aqui entra as suas condiçoes lista.Strings[idx]:=Linha end; Lista.SaveToFile(´QuerSalvarAonde\ArquivoEncriptografato.txt´); finally Lista.Free; end; end;
Gostei + 0
03/09/2009
Ipeixoto
procedure TForm1.Button1Click(Sender: TObject); var encriptLista:TStrings; idx,i,Tamanho, codasc, key, calc:integer; linha:String; temp : Char; begin encriptLista:=TStringList.Create; key := strtoint(edit1.Text); try encriptlista.LoadFromFile(´C:\original.txt´); for idx:= 0 to encriptLista.Count - 1 do begin Linha:=encriptlista.Strings[idx]; tamanho:=length(linha); for i:=1 to tamanho do begin calc := key mod 256; codasc := ord(linha[i]); calc := calc + codasc; temp := Chr(calc); Linha[i]:=temp; encriptlista.Strings[idx]:=Linha end; end; encriptLista.SaveToFile(´C:\encript.txt´); finally encriptLista.Free; end; end; procedure TForm1.Button2Click(Sender: TObject); var decriptLista:TStrings; didx,di,dTamanho, dcodasc, dkey, dcalc:integer; dlinha:String; dtemp : Char; begin decriptLista:=TStringList.Create; try decriptlista.LoadFromFile(´C:\encript.txt´); dkey := strtoint(edit1.Text); for didx:= 0 to decriptLista.Count - 1 do begin dLinha:=decriptlista.Strings[didx]; dtamanho:=length(dlinha); for di:=1 to dtamanho do begin dcalc := dkey mod 256; dcodasc := ord(dlinha[di]); dcalc := dcodasc - dcalc; dtemp := Chr(dcalc); dLinha[di]:=dtemp; decriptlista.Strings[didx]:=dLinha end; end; decriptLista.SaveToFile(´C:\decript.txt´); finally decriptLista.Free; end; end; end.
Acontece o seguinte quando eu coloco a chave de encriptação 1 por exemplo.. ele retorna a txt original mesmo.. ou seja isso fala q a rotina de encriptação que e uma soma besta e decriptção está certa.. pq quando eu coloco outros números da errado??
=// to desesperado já!
Gostei + 0
03/09/2009
Marco Salles
Vamos primeiro na encriptação
procedure TForm1.Button1Click(Sender: TObject);
var
encriptLista:TStrings;
idx,i,Tamanho, codasc, key, calc:integer;
linha:String;
temp : Char;
begin
encriptLista:=TStringList.Create;
key := strtoint(edit1.Text);
try
encriptlista.LoadFromFile(´C:\original.txt´);
for idx:= 0 to encriptLista.Count - 1 do
begin
Linha:=encriptlista.Strings[idx];
tamanho:=length(linha);
for i:=1 to tamanho do
begin
calc := key mod 256;
codasc := ord(linha[i]);
calc := calc + codasc;
temp := Chr(calc);
Linha[i]:=temp;
end;
encriptlista.Strings[idx]:=Linha ******AQUI Hooooooooooooo
end;
encriptLista.SaveToFile(´C:\encript.txt´);
finally
encriptLista.Free;
end;
end;
Gostei + 0
03/09/2009
Ipeixoto
procedure TForm1.Button1Click(Sender: TObject); var encriptLista:TStrings; idx,i,Tamanho, codasc, key, calc:integer; linha:String; temp : Char; begin encriptLista:=TStringList.Create; key := strtoint(edit1.Text); try encriptlista.LoadFromFile(´C:\original.txt´); for idx:= 0 to encriptLista.Count - 1 do begin Linha:=encriptlista.Strings[idx]; tamanho:=length(linha); for i:=1 to tamanho do begin calc := key mod 256; codasc := ord(linha[i]); calc := calc + codasc; temp := Chr(calc); Linha[i]:=temp; end; encriptlista.Strings[idx]:=Linha end; encriptLista.SaveToFile(´C:\encript.txt´); finally encriptLista.Free; end; end; procedure TForm1.Button2Click(Sender: TObject); var decriptLista:TStrings; didx,di,dTamanho, dcodasc, dkey, dcalc:integer; dlinha:String; dtemp : Char; begin decriptLista:=TStringList.Create; try decriptlista.LoadFromFile(´C:\encript.txt´); dkey := strtoint(edit1.Text); for didx:= 0 to decriptLista.Count - 1 do begin dLinha:=decriptlista.Strings[didx]; dtamanho:=length(dlinha); for di:=1 to dtamanho do begin dcalc := dkey mod 256; dcodasc := ord(dlinha[di]); dcalc := dcodasc - dcalc; dtemp := Chr(dcalc); dLinha[di]:=dtemp; end; decriptlista.Strings[didx]:=dLinha end; decriptLista.SaveToFile(´C:\decript.txt´); finally decriptLista.Free; end; end;
Marcos bem fiz como vc falou porem ainda não deu certo.. =// séra o pascal?? pq em c da certo =/
coloquei chave 12 e nem deu.. pq as vezes no encript.txt aparece ? ai não da certo =//
Gostei + 0
03/09/2009
Marco Salles
Teste aqui e deu certinho
A função de encriptografar é sua.. Mas mesmo assim me arrisquei com
ela.. Encriptografei e descriptografei
Usei o Txt Original assim ;
Mudar testo
Outra Linha
Encriptografou assim
Gostei + 0
04/09/2009
Ipeixoto
aqui eu to usando o Windows Vista + delphi 2009 lite
ele encripta assim
Gostei + 0
04/09/2009
Marco Salles
Bem o tipo String e o Tipo Char no delphi2009 , houve uma pequena mudança
Ainda não cheguei lá . Mas acho que eles sofreram alterações para receber
os Padrões Unicode..
Gostei + 0
04/09/2009
Ipeixoto
Gostei + 0
04/09/2009
Ipeixoto
:P
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)