Hallo semua!! Udah lama nih ngga posting tutorial… Maklum, kebanyakan ngerjain tugas-tugas perkuliahan. Nah sekarang saatnya membuat tulisan lagi…

Bagi yang pernah menggunakan bahasa pemrograman PHP pasti kenal dengan salah satu fungsi yang sangat powerfull yaitu EXPLODE. Sebagaimana kita tahu, fungsi ini berguna untuk meng-eksplode (memecah) suatu string ke dalam beberapa substring dengan pemisah yang ditentukan oleh kita. Nah, say terfikir apakah ada fungsi serupa di DELPHI??

Saya baru menemukannya pagi ini. Ternyata Delphi menyediakan fungsi yang bernama ExtractStrings. Dari Help-nya Delphi, kita bisa tahu kalau kegunaan fungsi ini adalah Fills a string list with substrings parsed from a delimited list. Fungsi ini ada di unit Classes yang secara default ditambahkan ketika kita membuat sebuah form. Jadi, kita bisa langsung memakainya.

Syntax-nya sebagai berikut:

ExtractStrings(Separators, WhiteSpace: TSysCharSet; Content: PChar; Strings: TStrings): Integer;

Agar lebih jelas, bisa membaca deskripsi dari fungsi ini :
Description

Use ExtractStrings to fill a string list with the substrings of the null-terminated string specified by Content.

Separators is a set of characters that are used as delimiters, separating the substrings. Carriage returns, newline characters, and quote characters (single or double) are always treated as separators. Separators are ignored when inside a quoted string until the final end quote. (Note that quoted characters can appear in a quoted string if the quote character is doubled.)

WhiteSpace is a set of characters to be ignored when parsing Content if they occur at the beginning of a string.

Content is the null-terminated string to parse into substrings.

Strings is a string list to which all substrings parsed from Content are added. The string list is not cleared by ExtractStrings, so any strings already in the string list are preserved.

ExtractStrings returns the number of strings added to the Strings parameter.

Note:    ExtractStrings does not add empty strings to the list.

Oke deh, sekarang tiba saatnya bagaimana cara menggunakannya. Yang pertama kali perlu di perhatikan adalah bahwa string hasil extraksi disimpan kedalam variabel bertype TString. Jadi, Anda bisa menyimpannya ke dalam sebuah ListBox, atau sebarang variabel dengan tipe yang sama.

Misalkan saya mempunyai sebuah form dengan komponen Edit1, ListBox1, dan Button1. Komponen Edit digunakan sebagai input string yang akan di-eksplode, ListBox digunakan untuk menyimpan hasil-nya. Berikut ini adalah contoh kode program saat Button1 di click, dan misalkan pula separator yang digunakan adalah ‘,’.


procedure TForm1.Button1Click(Sender: TObject);
var
n : byte;
begin
ListBox1.Items.Clear;
n := ExtractStrings([','],[' '],PChar(Edit1.Text),ListBox1.Items);
ShowMessage('String telah di eksplode kedalam '+IntToStr(n)+' substring');
end;

Berikut ini adalah salah satu contoh tampilannya:

explode string

explode

OK, semoga bermanfaat!


Posted Under Category: Pascal, Delphi, & Web


6 Responses to Membuat Fungsi Explode PHP pada Delphi

  1. JoanWc says:

    I opine that there is not a pretty good idea to write the definition essay by your own efforts! As for me, this would be more comfortable to order the analytical essay at the paper writing service, because it will save free time.

  2. novelzz says:

    klo mecah dari listbox ke beberapa edittext gmn ??

  3. novelzz says:

    misanya data yang di listbox (yuli , surabaya , 19) , dan klo di klik , maka yuli akan masuk ke edit1.text , surabaya akan masuk ke edit2.text , dst . . gmn caranya ?? plizzz jawabb . . :( ( .. need ur help

  4. Khaeroni says:

    Misalkan sy punya Form dgn sebuah listbox dan 3 buah Edit. Double click listbox (untk menangani event on click milik listbox)

    procedure TForm1.ListBox1Click(Sender: TObject);
    var Data:TListBox;
    begin
      Data:=TListBox.Create(Form1);
    Data.ParentWindow:=Form1.Handle;
    Data.Items.Clear;
      ExtractStrings([','],[' '],PChar(ListBox1.Items[ListBox1.ItemIndex]),Data.Items);
    Edit1.Text:=Data.Items[0];
    Edit2.Text:=Data.Items[1]:
    Edit3.Text:=Data.Items[2];
    Data.Free;
    end;

    Sori, masih pemula. He he he

  5. Nanxz says:

    Wah Mantab ne…izin copy…

  6. Agoy Percusion says:

    mohon pencerahan bos.
    double kliknya jalan tp yang keluar di listbox2 bukan jawaban yang dicari. Mohon bantuan bos.
    unit Unit1;

    interface

    uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls, Buttons, Menus, ExtCtrls;

    type
    TForm1 = class(TForm)
    Panel1: TPanel;
    GroupBox1: TGroupBox;
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    MainMenu1: TMainMenu;
    File1: TMenuItem;
    Keluar1: TMenuItem;
    Data1: TMenuItem;
    Input1: TMenuItem;
    Report1: TMenuItem;
    GroupBox2: TGroupBox;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Panel2: TPanel;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    Label7: TLabel;
    Panel3: TPanel;
    Label9: TLabel;
    GroupBox3: TGroupBox;
    GroupBox4: TGroupBox;
    ListBox1: TListBox;
    ListBox2: TListBox;
    Button1: TButton;
    Label8: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Keluar2: TMenuItem;
    Edit7: TEdit;
    Button2: TButton;
    procedure Input1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Report1Click(Sender: TObject);
    procedure Keluar1Click(Sender: TObject);
    Procedure SimpanDataMHS(n:integer);
    Procedure SimpanDataNilai(n:integer);
    procedure BitBtn1Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Keluar2Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure ListBox1DblClick(Sender: TObject);

    private
    { Private declarations }
    public
    { Public declarations }
    end;
    Type
    data = record
    NIM:string;
    Nama:String;
    end;

    Type
    data2 = record
    Tugas:string;
    Quiz:string;
    UTS:string;
    UAS:string;
    end;

    var
    Form1: TForm1;
    MHS:array [0..20] of data;
    REP:array [0..20] of data2;
    i:integer;
    implementation

    uses Unit2;

    {$R *.dfm}
    Procedure TForm1.SimpanDataMHS(n:integer);
    begin
    MHS[n].NIM:=edit1.text;
    MHS[n].Nama:=edit2.text;
    end;
    Procedure TForm1.SimpanDataNilai(n:integer);
    begin
    REP[n].Tugas:=edit3.text;
    REP[n].Quiz:=edit4.text;
    REP[n].UTS:=edit5.text;
    REP[n].UAS:=edit6.text;
    end;
    procedure TForm1.Input1Click(Sender: TObject);
    begin
    panel1.Show;
    panel3.Hide;
    end;

    procedure TForm1.FormCreate(Sender: TObject);
    begin
    panel1.Hide;
    panel3.hide;
    begin
    i:=0;
    ListBox1.AddItem(‘NIM NAMA’,ListBox1);
    ListBox2.AddItem(‘Tugas Quis UTS UAS’,ListBox2);
    end;
    end;

    procedure TForm1.Report1Click(Sender: TObject);
    begin
    panel3.Show;
    panel1.Hide;
    end;

    procedure TForm1.Keluar1Click(Sender: TObject);
    begin
    application.Terminate;
    end;

    procedure TForm1.BitBtn1Click(Sender: TObject);
    begin
    if (edit1.Text”) and (edit2.Text”) then
    if (edit3.Text”) and (edit4.Text”) and (edit5.Text”) and (edit6.Text”) then
    begin
    inc(i);
    SimpanDataMHS(i);
    SimpanDataNilai(i);
    edit1.Text:=”;
    edit2.Text:=”;
    edit3.Text:=”;
    edit4.Text:=”;
    edit5.Text:=”;
    edit6.Text:=”;
    Messagedlg(‘Saving’ ,MtInformation,[MBOK],0);
    end else
    begin
    Messagedlg(‘Student Data Incomplete,Please Fill This Form’,MtInformation,[MBOK],0);
    Edit1.SetFocus;
    end;
    end;

    procedure TForm1.Button1Click(Sender: TObject);
    var
    j:integer;
    begin
    for j:=1 to i do
    begin
    ListBox1.AddItem(MHS[j].NIM+’ ‘+MHS[j].Nama,listbox1);
    ListBox2.AddItem(REP[j].Tugas+’ ‘+REP[j].Quiz+’ ‘+REP[j].UTS+’ ‘+REP[j].UAS,ListBox2);
    end;
    end;
    procedure TForm1.Keluar2Click(Sender: TObject);
    begin
    form2.Show;
    end;

    procedure TForm1.Button2Click(Sender: TObject);
    var
    l:integer;
    t:integer;
    begin
    for l:=1 to i do
    if edit7.Text=MHS[l].NIM then
    begin
    listbox1.Clear;
    listbox2.Clear;
    ListBox1.AddItem(‘NIM NAMA’,ListBox1);
    ListBox2.AddItem(‘Tugas Quis UTS UAS’,ListBox2);
    ListBox1.AddItem(MHS[l].NIM+’ ‘+MHS[l].Nama,listbox1);
    end else
    begin
    for t:=1 to i do
    if edit7.Text=MHS[t].Nama then
    begin
    listbox1.Clear;
    listbox2.Clear;
    ListBox1.AddItem(‘NIM NAMA’,ListBox1);
    ListBox2.AddItem(‘Tugas Quis UTS UAS’,ListBox2);
    ListBox1.AddItem(MHS[t].NIM+’ ‘+MHS[t].Nama,listbox1);
    end;
    end;
    end;

    procedure TForm1.ListBox1DblClick(Sender: TObject);
    var
    k : integer;
    begin
    for k:=1 to i do
    begin
    ListBox2.Clear;
    ListBox2.AddItem(‘Tugas Quis UTS UAS’,ListBox2);
    ListBox2.AddItem(REP[k].Tugas+’ ‘+REP[k].Quiz+’ ‘+REP[k].UTS+’ ‘+REP[k].UAS,ListBox2);
    end;
    end;
    end.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Quranic Verse

"Mereka berkata: ""Apakah kamu datang kepada kami untuk memalingkan kami dari apa yang kami dapati nenek moyang kami mengerjakannya, dan supaya kamu berdua mempunyai kekuasaan di muka bumi? kami tidak [+] [Yunus 10:78]


Categories


Portal Akademik


Portal E-Learning


My Affiliate



My Face-book


My Tweet


Yahoo! Messanger


My Count's