PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum Salvando arquivo com TFileStream #486713

24/07/2014

0

Implementei um método de criptografia com TMemoryStream, mas eu não sabia que existe um limite para essa variável, o meu programa falhava quando o arquivo passava dos 100MB aproximadamente, então decidi usar o TFileStream, gostaria que me ajudassem a corrigir o seguinte código:

var
arqIn,arqOut: TFileStream;
I: Integer;
C: byte;
Senha: Integer;
begin
Senha:= strtoint(Edit4.Text)
arqIn:= TFileStream.Create(Edit1.Text,fmOpenRead);
arqIn.Position:=0;
arqOut:= TFileStream.Create(Edit2.Text+'\'+Edit3.Text+'.txt',fmCreate);     // coloquei o '.txt' apenas para testar em arquivos como o Bloco de Notas, mas pretendo criptografar
                                                                                                                     // arquivos consideravelmente grandes
arqOut.Position:=0;
try
	for I := 0 to arqIn.Size-1 do begin
		arqIn.Read(C,1);
    C := (C xor not (ord(senha shr i)));
    arqOut.Write(C, 1);
    end;
    arqOut.SavetoFile(Edit2.Text+'\'+Edit3.Text+'.txt');    // Problema com o comando SavetoFile
finally
  arqIn.Free;
  arqOut.Free;
end;
end;

Obviamente SavetoFile não é um comando reconhecido pela variável TFileStream, gostaria de saber qual é o melhor comando para isso.
O programa possui 4 Edits, 1 OpenDialog e 1 SaveDialog.
Edit1 pra receber o arquivo a ser criptografado
Edit2 pra receber o diretório onde o arquivo criptografado será salvo
Edit3 pra receber o nome do arquivo que será salvo
Edit4 pra receber uma senha que só aceita números
Button1 pra executar o procedimento acima

PS: Caso não consigam me ajudar, existe alguma forma de implementar com TMemoryStream que seja capaz de suportar arquivos grandes?
Obrigado.
Andrew Vargas

Andrew Vargas

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar