sábado, 9 de maio de 2009

6º Firebird Developers Day

Organizado pela FireBase, o Firebird Developers Day chega à sua sexta edição consagrado como o maior evento de banco de dados Firebird em todo o mundo! Em tempos de crise, a redução de custos é uma ferramenta importante para qualquer negócio, e em se tratando de SGBDs, o Firebird ganha destaque como uma alternativa confiável e gratuita!
O FDD é voltado para desenvolvedores e DBAs, que encontram no evento a oportunidade de se aprofundar e expandir seus conhecimentos, bem como fazer contatos e trocar experiências, além de aproveitar as super promoções que são oferecidas para os participantes.
As palestras focam temas que podem ser aplicados diretamente no trabalho do dia-a-dia do desenvolvedor. Os participantes receberão um kit com material exclusivo do evento, e poderão adquirir licenças de ferramentas e componentes por um preço super reduzido (saiba mais aqui).

Acesse: http://www.firebirddevelopersday.com.br/fdd/index.html?utm_source=fireBase&utm_medium=web&utm_campaign=fddrotativo

Exemplo Adaptado de Rotina de Conversao de Hexadecima - Binario - Octal

Salve, salve amigos,

Navegando na internet neste final de semana, localize uma unit contendo alguns códigos interessantes e resolvi realizar algumas alterações no código para que você possa precisar em algum momento converter de Hexadecimal, Binário ou Octal.

Não se esqueçam de deixar seu comentário

------------------------------------------------------------------------------------------------

Em um formulario, adicione os seguintes componentes:

Um RadioGroup contendo os seguintes itens: Dec, Bin. Oct, Hex

Deixe selecionado a primeira opção. (Dec)

Adicione um componente Edit, e limpe seu caption.

Na seção public, declare as seguintes procedure:

Procedure RotinadeConversao_D; // Converte um numero para decimal
Procedure Rotinadeconversao_B; // Converter de decimal para

*******************************************************************

procedure TForm3.RotinadeConversao_D;
var
i, Bin :Integer;
Calcular :Real;
Inverter :String;

begin

Calcular:=0;
Inverter :=AnsiReverseString(Edit1.text) ;

For i:= 1 to Length(Edit1.text) do begin

{ Convertendo de Binario Para Decimal}

If PosicaoAnterior = 1 Then Begin
Bin := StrToInt(Inverter[i]);
Calcular := Calcular + (Bin * Power(2,i-1)); //Power Eleva Potencia
end
{ Fim da Conversão de Binario Para Decimal}
else

{ Inicio de Octal Para Decimal}
if PosicaoAnterior = 2 Then Begin
Bin:=StrtoInt(Inverter[i]);
Calcular := Calcular + (Bin * Power(8,i-1));
end
{ Fim da Conversão de Octal Para Decimal}
else
{ Convertendo de Hexadecimal Para Decimal}
if PosicaoAnterior = 3 Then Begin
Case Inverter[i]of
'A':Bin :=10;
'B':Bin :=11;
'C':Bin :=12;
'D':Bin :=13;
'E':Bin :=14;
'F':Bin :=15;
else Bin:=StrtoInt(Inverter[i]);
end;
Calcular := Calcular + (Bin * power(16,i-1));
end;
{ Fim da Conversão de Hexadecimal Para Decimal}
end;
Edit1.text:=(FloatToStr(Calcular));
end;


***************************************************

procedure TForm3.Rotinadeconversao_B;
var

Calculo,Conversao,Bin,Resto:Integer;
Aux:String;
Begin
Aux:='';
if Edit1.Text<>'' Then
Conversao:= Trunc(StrToFloat(Edit1.text))
else
Conversao:=0;
Edit1.text:='';
{Inicio Conversao para Binario}
if RgTipo.ItemIndex=1 Then Begin
repeat
Bin := Conversao div 2;
Resto := Conversao mod 2;
Aux := Aux + IntToStr(resto);
Conversao:= Bin;
until (conversao <=1); Aux:= Aux + IntToSTR(Bin); Edit1.Text:= AnsiReverseString(Aux); end {Fim da Conversao para Binario} else {Inicio Conversao para Octal} if RgTipo.ItemIndex=2 then Begin Repeat Bin := Conversao div 8; Resto := Conversao mod 8; Conversao:= Bin; Aux := Aux + IntToStr(resto); Until (Conversao <=1); if bin>0 then
Aux:= Aux + IntToSTR(Bin);
Edit1.Text:= AnsiReverseString(aux);
end
{Fim da Conversão para Octal}
else Begin
{Inicio da Conversao para Hexadecimal}
Repeat
Bin := Conversao div 16;
Resto := Conversao mod 16;
Conversao:= Bin;
case Resto of
10: Edit1.Text :=Edit1.Text + 'A';
11: Edit1.Text :=Edit1.Text + 'B';
12: Edit1.Text :=Edit1.Text + 'C';
13: Edit1.Text :=Edit1.Text + 'D';
14: Edit1.Text :=Edit1.Text + 'E';
15: Edit1.Text :=Edit1.Text + 'F';
else Edit1.Text :=Edit1.Text+ IntToStr(resto);
end;
until (Conversao <=1); if Bin>0 then
Edit1.Text:= Edit1.Text + IntToSTR(bin);
Edit1.text:= AnsiReverseString(Edit1.text);
end;
{Fim da Conversao para Hexadecimal}

end;


**************************************************************

No evento OnKeyPress do componente Edit, digite o seguinte código

if not (key in ['0'..'9']) then
key:=#0;

*********************************************************************

No evento Onclick do componente RadioGroup, digite o seguinte código:


case(RGTIPO.ItemIndex) of
0: begin
RotinadeConversao_D;
PosicaoAnterior:=0;
end;
1: begin
if (PosicaoAnterior=2)Or (PosicaoAnterior=3) Then Begin
RotinadeConversao_D;
PosicaoAnterior:=1;
Rotinadeconversao_B;
end
else Begin
PosicaoAnterior:=1;
Rotinadeconversao_B;
end;
end;//Fim CAse 1
2: begin
If (PosicaoAnterior=1) or (PosicaoAnterior=3) Then Begin
RotinadeConversao_D;
PosicaoAnterior:=2;
Rotinadeconversao_B;
end else Begin
PosicaoAnterior:=2;
Rotinadeconversao_B;
end;
end;
3: begin
If (PosicaoAnterior=1) or (PosicaoAnterior=2) Then Begin
RotinadeConversao_D;
PosicaoAnterior:=3;
Rotinadeconversao_B;
end else Begin
PosicaoAnterior:=3;
Rotinadeconversao_B;
end;
end;
end;
end;

***********************************************************************

Bom, agora basta compilar e digita por exemplo o valor 100 dentro do edit e selecionar uma das opções do Radiogroup


Um forte abraço

Marcos Antonio

sábado, 2 de maio de 2009

DBA D@y Online





Aumente seus conhecimentos como DBA e passe a gerenciar múltiplos bancos de dados

Gerenciar diversas plataformas de bancos de dados dificulta o trabalho do DBA. Uma série de diferentes questões que podem surgir devem ser abordadas. Pode um DBA administrar todos os diferentes sistemas de gerenciamento de dados ou cada DBMS requer um DBA dedicado?

DBA Day é um dia inteiro de apresentações online, 100% técnicas e exclusivo para DBAs, focado em questões relacionadas ao desenvolvimento e gerenciamento de banco de dados.

Você aprenderá a:

  • Entender a arquitetura do banco de dados e compartilhar informação com o seu time de desenvolvimento
  • Usar uma única interface para gerenciar bancos de dados Oracle, DB2, SQL Server, Sybase e MySQL
  • Localizar e resolver problemas com SQL em um clique
  • Detectar problemas em banco de dados antes que eles ocorram, sendo proativo e não reativo
  • Reduzir erros, re-trabalho e esforço através do gerenciamento de mudanças no banco de dados integrado com desenvolvimento de software

Um dia inteiro de apresentações online, 100% técnicas e exclusivo para DBAs.

Faça sua inscrição aqui

DelphiLive 2009



Meet the Delphi Development Team! Meet an International Crowd of Delphi Gurus!
Live and Face to Face!


Visite the website click here

III Maratona Interna de Programação Univale



FATEC Promove III Maratona de Programação

Será promovido dia 23 de maio a III Maratona Interna de Programação.
Evento além de promover uma atividade de interação entre todos alunos da FATEC funciona como objeto de seleção para a primeira fase da XIV Maratona Nacional de Programação.
NLI deseja boa sorte a todos participantes.

Mais informações no site: http://maratona.ime.usp.br/

Em breve estarei postando aqui, dicas de como se preparar.

Dicas Delphi - Arredondando valores

procedure RoundDecimal(var AValue: double; Const ADecimal: integer);
var
strValue : string;
begin
strValue := FloatToStrF(AValue,ffFixed,18,ADecimal);
AValue := StrToFloat(strValue);
end;

Dicas Delphi - Adicionando zeros a esquerda

function StrZero(const AValue: integer; ALength: integer): string;
var
base : string;
begin
base := '%.'+IntToStr(ALength)+'d';
result := Format(base,[AValue]);
end;