Olá. Peguei uma função na internet mas não compreendi com exatidão como que ela funciona, aliás, gostaria de saber também se tem um jeito de interpretá-las por si só, tipo, onde pesquisar pra entender o que cada coisa está fazendo.
Porém também me pergunto se precisamos sempre saber tudo o que acontece na função/procedure para colocarmos no sistema? Por exemplo, quando peguei o código que desabilita o X da janela, não entendi muito bem aquele esquema dos manipuladores e tal, mas coloquei no código, rodei e ele desabilitou sem mesmo eu saber "como" ...
//Copia arquivo
function TForm1.FileCopy(source,dest: String): Boolean;
var
fSrc,fDst,len: Integer;
size: Longint;
buffer: packed array [0..2047] of Byte;
begin
if source <> dest then
begin
fSrc := FileOpen(source,fmOpenRead);
if fSrc >= 0 then
begin
size := FileSeek(fSrc,0,2);
FileSeek(fSrc,0,0);
fDst := FileCreate(dest);
if fDst >= 0 then
begin
while size > 0 do
begin
len := FileRead(fSrc,buffer,sizeof(buffer));
FileWrite(fDst,buffer,len);
size := size - len;
end;
FileSetDate(fDst,FileGetDate(fSrc));
FileClose(fDst);
FileSetAttr(dest,FileGetAttr(source));
Result := True;
end
else
begin
ShowMessage('OPS!');
Result := False;
end;
FileClose(fSrc);
end;
end;
end;
Quando vou passar o debug no while alí, tem umas variáveis que recebem o array (acho que o len), é uns valores meio cabulosos ehehe e é ruim não saber pra que eles servem.
o mesmo acontece com a variável
buffer: packed array [0..2047] of Byte;
packed array? O que muda para o simples array? E essas 2047 posições é um valor padrão? O ideal é mantê-la ou posso diminuir pra ocupar menos espaço? Ou até depende do tamanho do arquivo que estou tentando copiar?
Gostaria de saber também se esse pode ser um método de copiar arquivo de banco de dados como sendo um backup ou se não é aconselhável e por quê.
Pergunta
DiabloX3
Olá. Peguei uma função na internet mas não compreendi com exatidão como que ela funciona, aliás, gostaria de saber também se tem um jeito de interpretá-las por si só, tipo, onde pesquisar pra entender o que cada coisa está fazendo.
Porém também me pergunto se precisamos sempre saber tudo o que acontece na função/procedure para colocarmos no sistema? Por exemplo, quando peguei o código que desabilita o X da janela, não entendi muito bem aquele esquema dos manipuladores e tal, mas coloquei no código, rodei e ele desabilitou sem mesmo eu saber "como" ...
Quando vou passar o debug no while alí, tem umas variáveis que recebem o array (acho que o len), é uns valores meio cabulosos ehehe e é ruim não saber pra que eles servem. o mesmo acontece com a variávelpacked array? O que muda para o simples array? E essas 2047 posições é um valor padrão? O ideal é mantê-la ou posso diminuir pra ocupar menos espaço? Ou até depende do tamanho do arquivo que estou tentando copiar?
Gostaria de saber também se esse pode ser um método de copiar arquivo de banco de dados como sendo um backup ou se não é aconselhável e por quê.
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.