Delphi is Fun

Icon

Delphi Community – Learning By Doing

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 ……

Filed under: SMS Gateway, , ,

2 Responses

  1. narsa says:

    kalau parrsing sms di delphi gmn gan???mohon bantuannya

  2. narsa says:

    kalau parsing sms di delphi gmn gan???mohon bantuannya

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Pages

Archives

Follow

Get every new post delivered to your Inbox.