Listing program lengkapnya adalah sebagai berikut :
implementation
{$R *.dfm}
uses auxstr;
const
HexTbl: string = ’0123456789ABCDEF’;
function AsciiToInt(str1: string): integer;
var
c: integer;
len: integer;
ch: char;
begin
result := 0;
len := length(str1);
for c := len downto 1 do
begin
ch := str1[c];
result := result + ord(ch) shl ((len – c) shl 8);
end;
end;
function IntToBin(i: integer): string;
var
d: integer; // digit
digit: byte; // digit value
n: boolean;
hasil, temp, sisa: Integer;
biner: string;
begin
digit := 2;
repeat
begin
hasil := i div digit;
sisa := i mod digit;
i := hasil;
biner := IntToStr(sisa) + biner;
end
until i < digit;
biner := IntToStr(i) + biner;
Result := biner;
if Length(biner) < 7 then
Result := ’0′ + biner;
end;
function BinToInt(str1: string): integer;
var
c: integer;
len: integer;
ch: char;
begin
result := 0;
len := length(str1);
for c := len downto 1 do
begin
ch := str1[c];
if ch = ’1′ then
result := result + 1 shl (len – c);
end;
end;
function ToHex(Value: integer): string;
var
zwVal: Byte;
begin
zwVal := (Value and $0F);
Result := HexTbl[zwVal + 1];
zwVal := (Value and $F0) shr 4;
Result := HexTbl[zwVal + 1] + Result;
end;
Kemudian tempelkan button, Edit1, Edit2, Edit3, Edit4 dan memo1. Edit1 digunakan untuk inputing Teks dan Edit4 Sebagai output bahasa PDU. Kemudian procedure buttonclick diisi kode sebagai berikut :
procedure TForm1.Button1Click(Sender: TObject);
var
i, j: integer;
larik, larik1: array of string;
jumdummy: integer;
dummy, septet, octet: string;
begin
jumdummy := (length(Edit1.Text) * 8 ) – (length(Edit1.Text) * 7);
dummy := ReplStr(’0′, jumdummy);
setlength(larik, length(Edit1.Text));
for i := (length(Edit1.Text) – 1) downto 0 do
begin
larik[i] := copy(Edit1.Text, (i * 1) + 1, 1);
Edit2.Text := Edit2.Text + IntToBin(AsciiToInt(larik[i]));
Edit3.Text := dummy + Edit2.Text;
end;
setlength(larik1, length(Edit1.Text));
for j := (length(Edit1.Text) – 1) downto 0 do
begin
larik1[j] := copy(Edit3.Text, (j * 8 ) + 1, 8);
Edit4.Text := Edit4.Text + ToHex(BinToInt(larik1[j]));
Memo1.Lines.Add(larik1[j]);
end;
end;
Sekarang Anda telah memiliki program untuk mengkonversi Teks ke PDU. Bagaimana untuk konversi PDU ke Teks ? Anda dapat menggunakan fungsi dan prosedur diatas untuk melakukan konversi dari PDU ke Teks.
Selamat Mencoba ……
url \; http://ilmudelphi.wordpress.com/category/project/
EmoticonEmoticon