konversi-“pdu-to-text”-“text-to-pdu”

Setelah kita paham teori PDU dan bagaimana perintah AT Command maka kita sudah siap untuk membuat program konversi PDU ke teks (PDU to Text) atau sebaliknya teks ke PDU (Text to PDU). Untuk membuatnya memang agak sedikit rumit karena kita harus paham terlebih dahulu algoritmanya. Tetapi jangan kuatir disini akan saya bahas bagaimana listing programnya dan Anda cukup copy paste, mudah bukan :) .

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/

Share this

Related Posts

Previous
Next Post »