Arsip: find karakter in array

 
user image
more 17 years ago

viq_01

dear delphi master, newbie butuh bantuan nih. mungkin konyol, mohon dimaklumi. apa ada fungsi untuk mencari banyaknya suatu karakter dalam array. mis : array isinya {'1','2','2','1','3','4','4'}. kalo di mysql kan ada fungsi FIND_IN_SET, utk data '3' berarti hasilnya 1. piye kalo find_in_set utk array? Terimakasih sebelumnya
user image
more 17 years ago

_lmz

@viq_01: dear delphi master, newbie butuh bantuan nih. mungkin konyol, mohon dimaklumi. apa ada fungsi untuk mencari banyaknya suatu karakter dalam array. mis : array isinya {'1','2','2','1','3','4','4'}. kalo di mysql kan ada fungsi FIND_IN_SET, utk data '3' berarti hasilnya 1. piye kalo find_in_set utk array? Terimakasih sebelumnya
Wow. Set apakah yang di dalamnya bisa duplikat? Ini fungsinya (untested). tidak tahu ada yang builtin tidak.

function find_in_set(the_set : array of char; char_to_find : char) : integer;
var i : integer;
begin
  Result := 0; 
  for i := low(the_set) to high(the_set) do 
    if the_set[i] = char_to_find then Inc(Result);
end;
user image
more 17 years ago

viq_01

sorry mas, sy salah. FIND_IN_SET, FIELD, dan INSTR tuh untuk posisi suatu string dalam daftar string, set string, atau string lainnya. bukan jumlahnya. btw, fungsinya sepertinya IW (It works) :) Thx yah..
user image
more 17 years ago

cikumiyu


function find_in_set(the_set : array of char; char_to_find : char) : integer;
var i : integer;
begin
  Result := 0; 
  for i := low(the_set) to high(the_set) do 
    if the_set[i] = char_to_find then Inc(Result);
end;
Mungkin akan jadi lebih tepat kalau dimodifikasi begini:

function find_in_set(the_set : array of char; char_to_find : char) : integer;
var i : integer;
begin
  Result := -1; 
  for i := low(the_set) to high(the_set) do
    if the_set[i] = char_to_find then 
    begin
      Result := i;
      Exit;
    end;
end;
Inisialisasi Result dibuat -1 agar jika nilai fungsi find_in_set ada kembaliannya jika tidak chat yang dicari tidak ditemukan. Kalau diinisialisasi dengan 0, bisa berarti tidak ditemukan atau ditemukan pada index ke-0. Penambahan procedure Exit dimaksudkan agar fungsi find_in_set segera keluar setelah chat ditemukan. Prinsipnya, pencarian tidak perlu dilanjutkan jika yang dicari telah ditemukan. :) Yang ke tiga, saran saya, biasakan untuk tidak menggunakan garis bawah sebagai konvensi untuk menamakan apapun, kecuali untuk konstanta. Walaupun borland tidak pernah secara resmi mengeluarkan Naming Convention yang standar, tapi beberapa text book delphi yang pengarangnya adalah juga developer senior di delphi menyarankan beberapa konvensi untuk penamaan yang mungkin bisa kita jadikan standar. Sehingga jika mengikuti konvensi tersebut, fungsi find_in_set akan menjadi:

function FindInSet(ACharSet: array of char; ACharToFind: Char): Integer;
var 
  i: Integer;
begin
  Result := -1; 
  for i := Low(ACharSet) to High(ACharSet) do
    if ACharSet[i] = ACharToFind then 
    begin
      Result := i;
      Exit;
    end;
end;
Semoga ada manfaatnya. :)
user image
more 17 years ago

_lmz

@viq_01: dear delphi master, newbie butuh bantuan nih. mungkin konyol, mohon dimaklumi. apa ada fungsi untuk mencari banyaknya suatu karakter dalam array. ...
Katanya dia mencari banyaknya karakter, bukan posisi. Lihat juga contohnya. Bagaimana bisa hasilnya 1 kalau yang dicari indexnya :). Nama fungsi yang menipu, atau mungkin salah tulis saja, mengingat find_in_set yang asli mengembalikan index dari string yang dicari :).
user image
more 17 years ago

cikumiyu

ck ck ck ... Bener-bener menipu. Yang seperti ini nih yang ngga boleh. Ngasih nama segala sesuatu, baik itu nama operasi atau nama variable harus mencerminkan maksud dari variable/operasi itu sendiri. Kalo dilihat dari argument funsinya kan ada char_to_find. Berarti itu artinyakan mau cari karakternya kan? :D
user image
more 17 years ago

viq_01

@viq_01: sorry mas, sy salah. FIND_IN_SET, FIELD, dan INSTR tuh untuk posisi suatu string dalam daftar string, set string, atau string lainnya. bukan jumlahnya. btw, fungsinya sepertinya IW (It works) :) Thx yah..
awalnya memang kesalahan sy yg menggunakan FIND_IN_SET padahal maksudnya bukan itu. mas _lmz sudah berbaik hati memberikan solusi dengan membuat function yg sy maksud. barangkali nama fungsinya aja yg diganti biar pas. thx 4 all
more ...
  • Pages:
  • 1
Share to

AI Forward

🚀 We're thrilled to partner with Alibaba Cloud for "AI Forward - Alibaba Cloud Global Developer Summit 2025" in Jakarta! Join us and explore the future of AI. Register now: https://int.alibabacloud.com/m/1000400772/
#AlibabaCloud #DeveloperSummit #Jakarta #AIFORWARD

Random Topic

Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com