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

Anúncios

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

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

Funções para manipulação de datas

Salve salve amigos,

Muitos ainda desconhecem, mas o Delphi possui várias funções pré-definidas para manipulação de datas. A maioria delas se encontra na unit DateUtils, mas existem também algumas da unit SysUtils.

O Delphi lhe dará uma lista de todas as funções disponíveis. Entre algumas das que considero mais úteis estão:

– retorna o número de horas entre 2 horários
function HourSpan(const ANow: TDateTime; const AThen: TDateTime): Double;

– número de anos entre 2 datas
function YearSpan(const ANow: TDateTime; const AThen: TDateTime): Double;

– extrai o dia de uma data
function DayOf(const AValue: TDateTime): Word;

– extrai o mês de uma data
function MonthOf(const AValue: TDateTime): Word;

– extrai o ano de uma data
function YearOf(const AValue: TDateTime): Word;

– extrai a hora
function HourOf(const AValue: TDateTime): Word;

– extrai o minuto
function MinuteOf(const AValue: TDateTime): Word;

– extrai o segundo
function SecondOf(const AValue: TDateTime): Word;

Ainda há certos detalhes a serem observados. É importante tomar cuidado e ler a ajuda do delphi antes de usar a função para ter certeza do resultado. Por exemplo, a unit dateutils possui esta função:

function DayOfTheWeek(const AValue: TDateTime): Word;

Ela retorna o dia da semana, mas considerando que a semana começa por segunda-feira (1 = segunda, 2 = terça … 7 = domingo). Já a unit sysutils possui a seguinte função:

function DayOfWeek(const AValue: TDateTime): Word;

Esta função faz a mesma coisa, retorna o dia da semana, mas considerando o domingo como primeiro dia (1 = domingo, 2 = segunda … 7 = sábado)!

Outra função, muito útil, mas que não está disponível em dateutils, mas sim em sysutils:

function IncMonth(const DateTime: TDateTime; NumberOfMonths: Integer): TDateTime;

Esta função soma ou subtrai meses de uma data. Exemplos:

IncMonth(25/10/2008, 1) = 25/11/2008
IncMonth(25/10/2008,-1) = 25/09/2008
IncMonth(25/10/2008, 2) = 25/12/2008

Take care