sábado, 27 de fevereiro de 2010

Dicas Delphi - Criar e ler arquivos ini

Salve, salve

//Primeiro declare IniFiles na seção USES do seu projeto.
//Defina uma variável global data: TInifile;
//Para criar o arquivo INI:

begin

data := TIniFile.Create('C:arquivo.ini'); //Nome do meu arquivo INI que será criado

data.WriteString('NOME1', 'NOME2', Edit1.Text);
//O conteúdo do Edit1.Text será gravado dentro da chave NOME1 e na subchave NOME2

data.Free; //Libera a memória

//Para ler o arquivo INI:

begin

data := TIniFile.Create('C:arquivo.ini'); //Nome do meu arquivo INI que quero ler

Edit1.Text := data.ReadString('NOME1', 'NOME2', ''); //O Edit1.Text vai receber o que está gravado dentro da chave NOME1 e da subchave NOME2

data.Free; //Libera a memória

{

O arquivo INI fica assim

[NOME1]

NOME2=Edit1.Text

}



Take care

Dicas Delphi - Deletar todos arquivos e subdiretórios do diretório

Salve salve,

// Dica para deletar todos arquivos e subdiretórios do diretório "Temp" do Windows

function GetTempDir: string; // Retorna o Diretorio Temp do Windows

var TempDir: array[0..255] of Char;

nSize:integer;

begin

SetLength(Result,255);

nSize:=GetTempPath(255, PChar(Result));

SetLength(Result,nSize);

if Result[Length(Result)]<>'' then Result:= Result+'';

end;



procedure NewZapFiles(StDelDir: boolean; Caminho: string);

var SR: TSearchRec;

Count: integer;

begin

if DirectoryExists(ExtractFilePath(Caminho))=False then

ShowMessage('Diretório Inexistente!!!') else

begin

Count:= FindFirst(Caminho,faAnyFile,SR);

while Count=0 do

begin

//Application.ProcessMessages;

if (SR.Attr= faDirectory) then

begin

if (SR.Name<>'.') and (SR.Name <> '..') then

NewZapFiles(True,ExtractFilePath(Caminho)+SR.Name+'*.*')

end else

begin

if FileGetAttr(ExtractFilePath(Caminho)+SR.Name)>0 then

FileSetAttr(ExtractFilePath(Caminho)+SR.Name, 0);

DeleteFile(ExtractFilePath(Caminho)+SR.Name);

end;

Count:= FindNext(SR);

end;

FindClose(SR);

if StDelDir= True then RemoveDir(ExtractFilePath(Caminho));

end;

end;



// Acrescente um "Button" e para o evento "OnClick" utilize o código de comandos abaixo:



procedure TForm1.Button1Click(Sender: TObject);

begin

if MessageDlg('Deseja realmente deletar arquivos temporários do Windows?'+#13+'('+GetTempDir+'*.*)', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
NewZapFiles(False,GetTempDir+'*.*');

end;

-----
Retirada da internet
-----

Take care

Dicas Delphi - Converter Minutos Para Horas

Salve, salve

Veja nesta dica uma simples função que retorna a quantidade de horas a partir de uma quantidade de minutos.

function MinutosEmHoras(Minutos: Integer): String;
var
HoraDecimal, HH, MM: String;
begin
if Minutos > 1440 then
Minutos := Minutos - 1440;
HoraDecimal := FormatFloat( '00.00', Minutos / 60 );
HH := Copy( HoraDecimal, 1 , 2 );
if Copy( HoraDecimal, 4, 5 )[1] = '0' then
MM := '0' + IntToStr( Round( ( StrToInt( Copy( HoraDecimal, 4, 5 ) ) * 60 ) /100 ) )
else
MM := IntToStr( Round( ( StrToInt( Copy( HoraDecimal, 4, 5 ) ) * 60 ) /100 ) );
Result := HH+ ':' + MM ;
end;



Para utilizá-la, faça:

ShowMessage( MinutosEmHoras(480) );
//retornará: '08:00'

----
Retirada da internet
----

Take care

Dicas Delphi - Descobrindo o Dia da Semana

Salve, salve

Esta é uma dica bastante simples, pra você que está iniciando e precisa saber como descobrir o dia da semana através de uma data


variavel_datetime := StrToDate(Edit1.Text);

case DayOfWeek( variavel_datetime ) of
1: variavel_string := 'Domingo';
2: variavel_string := 'Segunda-Feira';
3: variavel_string := 'Terça-Feira';
4: variavel_string := 'Quarta-Feira';
5: variavel_string := 'Quinta-Feira';
6: variavel_string := 'Sexta-Feira';
7: variavel_string := 'Sábado';
end;

ShowMessage(variavel_string);

Obs.: Você também poderá montar uma função e devolver o dia da semana como result, após passar a data por parâmetro.


Take care

Dicas Delphi - Calculando o Próximo Dia Útil

Salve, salve


Function ProximoDiaUtil(dData: TDateTime): TDateTime;
begin
if DayOfWeek(dData) = 7 then
Result := dData + 2
else if DayOfWeek(dData) = 1 then
Result := dData + 1
else
Result := dData;
end;


Take care

Dica Delphi - MD5 com Delphi usando Indy

Salve, salve

Esta dica apresenta a função (ou método) para exemplificar como implementar a criptografia utilizando MD5, com Delphi e Indy

Inclua na seção uses a unit IdHashMessageDigest.

Primeiramente, façamos as seguintes implementações das funções que chamarão os métodos implementados na unit IdHashMessageDigest::

//Criptografar uma String
function MD5(const texto: string): string;
var
idmd5: TIdHashMessageDigest5;
begin
idmd5 := TIdHashMessageDigest5.Create;
try
result := idmd5.HashStringAsHex(texto);
finally
idmd5.Free;
end;
end;

//Criptografar um arquivo inteiro
function MD5File(const fileName: string): string;
var
idmd5 : TIdHashMessageDigest5;
fs : TFileStream;
begin
idmd5 := TIdHashMessageDigest5.Create;
fs := TFileStream.Create(fileName, fmOpenRead OR fmShareDenyWrite) ;
try
result := idmd5.HashStreamAsHex(fs);
finally
fs.Free;
idmd5.Free;
end;
end;

Agora, para criptografar uma String, faça:

ShowMessage( MD5('teste') ); //MD5(edtSenha.Text);

E para obter o hash MD5 de um arquivo, basta chamar a respectiva função passando o caminho completo do arquivo que queremos criptografar, ex:

ShowMessage( MD5File('C:\arquivo.xml') );

----
Dica tirada da internet
----
Take care