Dúvida - TXT
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
Curtidas 0
Respostas
Prmcibor
29/08/2009
Se entendi o que voce quer, vc pode fazer um While NOT EOF
assignfile(arquivo,opendialog1.FileName); reset(arquivo); // ARMAZENA WHILE NOT EOF(arquivo) do begin readln(arquivo,conteudotxt); end;
GOSTEI 0
Marco Salles
29/08/2009
Pode tb usar a VCL ( RichEdit , Memo , ListBox etc...)
procedure TForm1.Button1Click(Sender: TObject); begin opendialog1.InitialDir:=´C:\CaminhoPreferido\etx´; if opendialog1.Execute then richedit1.Lines.LoadFromFile(openDialog1.FileName); end;
GOSTEI 0
Ipeixoto
29/08/2009
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
Marco Salles
29/08/2009
não há dificuldade nisso
é claro que aonde vc lê
lista.Strings[idx]:=´Posso a cada Linha Alterar o Conteudo´ ;
Provavelmente é uma função Criptografia
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
Ipeixoto
29/08/2009
marcos mais na verdade oque o professor disse e eu não soube falar e o seguinte..
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.. =//
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
Marco Salles
29/08/2009
para ler caracter por caracter basta usar ;
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
Ipeixoto
29/08/2009
Marcos só tá dando um erroo..!
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á!
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
Marco Salles
29/08/2009
Dá errado pq vc ta colocando as coisas no Lugar ERRADO
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;
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;
encriptlista.Strings[idx]:=Linha *******LOCAL TA ERRADO
end;
end;
encriptLista.SaveToFile(´C:\encript.txt´);
finally
encriptLista.Free;
end;
end;
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
Ipeixoto
29/08/2009
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
Marco Salles
29/08/2009
Cara testa ai
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
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
Ipeixoto
29/08/2009
você usa qual S.O e versão do delphi??
aqui eu to usando o Windows Vista + delphi 2009 lite
ele encripta assim
aqui eu to usando o Windows Vista + delphi 2009 lite
ele encripta assim
GOSTEI 0
Marco Salles
29/08/2009
Uso Vista + Delphi2007 .. e posso garantir que ficou beleza
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..
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
Ipeixoto
29/08/2009
vou tentar o baixar o Delphi2007 pq tentei de tudo e o encript e decript não da mesmo.. tentei até com o delphi 7 e tbm não dá isso e pra segunda.. vou tentar obrigado ;(
GOSTEI 0
Ipeixoto
29/08/2009
Marcos meu amigoo deu certo muito obrigado pelo seu tempo..
:P
:P
GOSTEI 0