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, delphi, Konversi, PDU
kalau parrsing sms di delphi gmn gan???mohon bantuannya
kalau parsing sms di delphi gmn gan???mohon bantuannya