Você Sabia?
Veja neste artigo de Adail Muniz, algumas dicas pouco conhecidas do Delphi.
, ativado no Windows NT e XP ao executar o arquivo cmd.exe (ou mesmo o antigo command.com, este também disponível nos Windows 9x), é um “emulador” do ambiente MS-DOS, que foi durante muitos anos a plataforma de trabalho de muita gente por aí (alô Clippeiros!).
Figura 1.
?
) para delimitar o texto desejado. Mas naquela época... Tínhamos que fazer isso “na unha”...Listagem 1. Trabalhando com parâmetros da linha de comando
program SuperParam;
var
p: Integer;
begin
WriteLn('Super-Param V. 1.0');
WriteLn;
if ParamCount = 0 then
WriteLn('Nenhum parametro digitado.')
else
begin
WriteLn('Numero de parametros: ', ParamCount);
WriteLn;
for p := 0 to ParamCount do
WriteLn('Parametro ', p, ': ', ParamStr(p));
end;
ReadLn; // só necessário se for executar dentro do IDE
end.
begin
Result := ParamStr(0);
end;
Listagem 2. Arquivos padrões para entrada e saída
program SuperPipe;
var
Linha: string;
begin
WriteLn(Output, 'Super-Pipe V. 1.0');
WriteLn(Output);
WriteLn(Output, 'Inicio da entrada');
WriteLn(Output, '-----------------');
while not EOF(Input) do
begin
ReadLn(Input, Linha);
WriteLn(Output, Linha);
end;
WriteLn(Output, '-----------------');
WriteLn(Output, 'Fim da entrada');
end.
-----------------
Volume in drive C is Adail.
Volume Serial Number is 38B1-C70C
Directory of C:\...
04/12/2005 00:57 <DIR> .
04/12/2005 00:57 <DIR> ..
04/12/2005 00:45 <DIR> ModelSupport_SuperPipe
04/12/2005 00:57 8.370 SuperPipe.bdsproj
04/12/2005 00:57 383 SuperPipe.bdsproj.local
Batatinha quando nasce
Se esparrama pelo chao
^Z
Batatinha quando nasce
Se esparrama pelo chao
^Z
em aplicações Windows gerará uma exceção!
Borland Delphi for Win32 compiler version 18.0
Copyright (c) 1983,2005 Borland Software Corporation
Syntax: dcc32 [options] filename [options]
C:\...>dcc32 SuperParam
Borland Delphi for Win32 compiler version 18.0
Copyright (c) 1983,2005 Borland Software Corporation
SuperParam.dpr(22)
23 lines, 0.28 seconds, 13432 bytes code, 12168 bytes data.
Listagem 3. Arquivo batch para compilação
echo.
dcc32 %1 %2 %3 %4 %5 %6 %7 %8 %9
if ErrorLevel 1 goto ERRO
echo.
Borland Delphi for Win32 compiler version 18.0
Copyright (c) 1983,2005 Borland Software Corporation
SuperParam.dpr(8) Error: E2029 ';' expected but 'BEGIN' found
8 a 20 MHz (compare com seu P4 a 2 GHz). Cada ciclo de máquina economizado poderia significar a diferença entre um desempenho medíocre e um excepcional!
Listagem 4. Programando com inline assembler
{$APPTYPE CONSOLE}
function SomaPascal(X, Y: Integer): Integer;
begin
Result := X + Y;
end;
function SomaAssembler(X, Y: Integer): Integer;
asm
MOV EAX, X
ADD EAX, Y
end;
begin
WriteLn(SomaPascal(123, 321));
WriteLn(SomaAssembler(123, 321));
ReadLn;
end.
em Delphi. Os painéis no canto superior direito exibem os valores atuais dos registradores, sendo que o painel mais à direita exibe cada bit do registrador de flags (EFL).
Figura 2. A janela CPU
em Pascal. Você pode depurar normalmente, com F8 (Step Over) e F7 (Trace Into). Vamos, experimente! Ao chegar à chamada da função SomaPascal, use o F7 para ver o código dela. Faça o mesmo para ver o código da função SomaAssembler. A Figura 3 mostra o código compilado das duas funções.
Figura 3. Comparando o código das duas funções
em Assembly. E ainda tem gente que não entende porque um programa compilado em Delphi é tão rápido...
em Assembly. Eu recomendo esse exercício, mesmo para os mais “feras” em Delphi.
Museu da Borland, onde podem ser baixadas verdadeiras relíquias como o Turbo Pascal 1.0, 3.02 e 5.5.


em 7/5/2007 13:31 - Responder


em 12/6/2007 16:53 - Responder


em 20/12/2008 09:25 - Responder
Space do autor

Estudo comparativo entre banco de dados IBM Informix e Microsoft SQL

5
0
Conheça os planos de créditos DevMedia e visualize esse post agora mesmo!