Friday, September 26, 2003, 9:08:35 PM, you wrote:

function Base10ToBaseX(BaseXDef: array of Char; Base10Value: Integer): string;
var
  s: string;
  i, d, m: Integer;
  BaseXCount: Byte;
begin
  s := '';
  i := Base10Value;
  BaseXCount := SizeOf(BaseXDef);
  repeat
    d := i div BaseXCount;
    m := i mod BaseXCount;
    s := BaseXDef[m] + s;
    i := d;
  until d = 0;
  Result := s;
end;

procedure TForm1.Button1Click(Sender: TObject);
const
  XDef2  : array[0..1]  of Char = ('0','1');
  XDef10 : array[0..9]  of Char = ('0','1','2','3','4','5','6','7','8','9');
  XDef16 : array[0..15] of Char = 
('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');
var
  a, b, i : Integer;
  XDefAZ : array[0..26] of Char;
begin

  XDefAZ[0] := '0';
  for i := 1 to 26 do XDefAZ[i] := Chr(65+i-1);

  a := 27*27*27 + 27*27 + 27 + 1;
  b := a + 100;

  for i := a to b do ListBox1.Items.Add(Base10ToBaseX(XDefAZ, i));

end;

<!--DEL-->

Coba jalankan potongan diatas dengan New Application trus tambahkan
TButton dan ListBox (satu biji aja).

Saya pernah bikin juga untuk hal ini, prinsipnya andalah bilangan
berbasis-N, kalo bilangan yang sering kita pakai adalah bilangan basis
10 memiliki 'tanda gambar' 0,1,2,3,4,5,6,7,8,9 sebagai contoh anda mau
menampilkan angka 9999, pada hakekatnya 9999 itu dibentuk dari:

9*10^3 + 9*10^2 + 9*10^1 + 9*10^1 =
9*1000 + 9*100 + 9*10 + 9*1 = 9999

Nah, itu bilangan berbasis 10 bagai mana dengan dengan A..Z? misalkan
kita menciptakan suatu angka berbasis yang kita defisinikan sendiri
memiliki tanda gambar: 0ABCDEFGHIJKLMNOPQRSTUVWXYZ berarti disitu
terdapat 27 'tanda gambar'. Setiap tanda gambar harus memiliki bobot
atau padanan basis-10 nya agar kita yang notabene sudah terbiasa
dengan basis-10 mudah menghitung, dengan contoh diatas berarti

'0' berbobot 0
'A' berbobot 1
'B' berbobot 2
'C' berbobot 3
dst.
'Z' berbobot 26

Dengan analogi yang sama spt angka 10 tadi, kalo anda mau bikin 'ZZZZ'
berarti iterasi yang harus disiapkan adalah:

26*27^3 + 26*27^2 + 26*27^1 + 26*27^0 =
26*19683 + 26*729 + 702 + 26 = <itung sendiri...>

Nah kalo anda mau bikin 9 (sembilan) digit, berarti ZZZZZZZZZ

26*27^8 = 26 * 282429536481 = 7343167948506

itu baru digit PERTAMA blon ditambahkan digit selanjutnya!

WAAAAAAAAH kapan kelarnya??????  kalo mau ngurutin dari 'AAAAAAAAA' to
'ZZZZZZZZZ'

Metode spt ini saya pake dulu untuk nyobain brute-force / password
cracker, jadi semua kombinasi dicobain... termasuk spasi, underscore
dll. Tapi cara ini memakan waktu berhari-hari.

r> program bisa berjalan dengan baik, tapi waktu lebar data dan jumlah data saya 
tambah,
r> program jadi Running dan tidak selesai-selesai.
r> data yang saya gunakan mulai A...Z, lebar data 9
r>   program yang saya gunakan jadi seperti ini

r>   for i:=1 to jumlahdata do
r>   for j:=1 to jumlahdata do
r>   for k:=1 to jumlahdata do
r>   for l:=1 to jumlahdata do
r>   for m:=1 to jumlahdata do
r>   for n:=1 to jumlahdata do
r>   for o:=1 to jumlahdata do
r>   for p:=1 to jumlahdata do
r>   for q:=1 to jumlahdata do
  
r>    
stringgrid1.cell[I,J]:=huruf(i)+huruf(j)+huruf(k)+huruf(l)+huruf(m)+huruf(n)+huruf(o)+huruf(p)+huruf(q);

menurut saya daripada pake cara nested-for spt ini pake procedur
diatas, khan nggak lucu entar dikau mau nambah lebar digit masa harus
recompile??
   
r> apakah cara yang saya gunakan ini salah, atau mungkin dari
r> rekan-rekan mempunyai cara yang lebih baik.

Nggak salah cuman emang begitu... lama...

r> Terima kasih Atas pencerahannya

Ok

--- 
Best regards,
 Syarif Lumintarjo
 [EMAIL PROTECTED]


------------------------ Yahoo! Groups Sponsor ---------------------~-->
Upgrade to 128-Bit SSL Security!
http://us.click.yahoo.com/p7cEmB/s7qGAA/yigFAA/i7folB/TM
---------------------------------------------------------------------~->

Berlangganan: [EMAIL PROTECTED]
Stop Berlangganan: [EMAIL PROTECTED]
Keluhan Milis(Unbouncing,spam,dll): [EMAIL PROTECTED] 

Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/ 


Kirim email ke