Einen großen Teil macht dabei
SysUtils
aus (ca. 100KB).
Dieses kann man vermeiden, wenn man gezielt auf Teile von SysUtils verzichtet oder nur die benötigten Teile in eine eigene
Unit auslagert.
Delphi-Quellcode:
program ConsoleTest;
{$APPTYPE CONSOLE}
{$R *.res}
uses
// System.SysUtils;
// statt der sehr großen SysUtils nehmen wir unsere eigene
uSmallSysUtils
in '
uSmallSysUtils.pas';
var
VName, NName :
String;
Passwort :
String;
// PPasswort würde eigentlich auf einen Pointer schließen lassen
function RepeatStr(
const Str :
string; Count : integer ) :
string;
var
idx : integer;
begin
Result := '
';
for idx := 1
to Count
do
Result := Result + Str;
end;
begin
WriteLn( '
################################Login###########################################' );
WriteLn;
// Eine Zeile auslassen
Passwort := '
';
WriteLn( '
root@localhost ~ Insert password' );
ReadLn( Passwort );
// statt SysUtils.CompareStr vergleichen wir so
if ( Passwort <> '
1337' )
then
WriteLn( '
*Access granted*' )
else
begin
WriteLn( '
*Access denied*' );
Sleep( 2000 );
exit;
end;
WriteLn;
// Eine Zeile auslassen
WriteLn( '
Wie lautet dein Vorname?' );
ReadLn( VName );
WriteLn( '
Wie lautet dein Nachname?' );
ReadLn( NName );
WriteLn;
WriteLn( '
Willkommen ' + VName + '
' + NName + '
.' );
// Aufruf der Funktion mit gleichzeitiger Ausgabe
WriteLn( RepeatStr( '
Teststring', 99 ) );
ReadLn;
end.
und die uSmallSysUtils.pas sieht dann so aus (ist halt nur die Sleep-Funktion)
Delphi-Quellcode:
unit uSmallSysUtils;
interface
procedure Sleep(milliseconds: Cardinal);
{$IFDEF MSWINDOWS} stdcall;
{$ENDIF}
{$IFDEF MSWINDOWS}
(*$EXTERNALSYM Sleep*)
{$ENDIF}
implementation
{$IFDEF MSWINDOWS}
procedure Sleep;
external '
kernel32.dll'
name '
Sleep';
stdcall;
{$ENDIF MSWINDOWS}
{$IFDEF POSIX}
procedure Sleep( milliseconds : Cardinal );
begin
usleep( milliseconds * 1000 );
// usleep is in microseconds
end;
{$ENDIF POSIX}
end.
Jetzt ist die Release-Version nur noch 32KB groß ... aber ...
grundsätzlich sollte man gerade als Anfänger davon erstmal absehen
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)