تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[تعديل] الدالة العشوائية لتوليد الارقام والحروف (بدورة AT4RE لتعليم Keygening)
#1
السلام عليكم ورحمة الله وبركاته


لفت انتباهي (بدورة AT4RE لتعليم Keygening)
في دالتي توليد الارقام والحروف العشوائية
 ان النتيجة دائمة متشابهة
RandomNum = 3404-2631-0082
RandomStr =JLCM-HRIE-AAWF

 
function RandomStr: String;
var
A, K: String;
i : Integer;
begin
//randomize; <<== Add HERE
  K:='ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  A:='xxxx';
  for i:=1 to length(A) do
    A[i]:=K[Random(length(k))+1];
  Result := A;
end;


function RandomNum : String;
var
A, K: String;
i: Integer;
begin
//randomize; <<== Add HERE
  K:='0123456789';
  A:='xxxx';
  for i:=1 to length(A) do
    A[i]:=K[Random(length(k))+1];
  Result := A;
end;


وهو مايخالف تسميتها (Random-عشوائية)
وحلها بسيط ..... للحصول على نتيجة عشوائية نقوم باضافة السطر
randomize;
 
وشكرا لأساتذتنا الكرام لاثرائنا بكل ماقدموه من دروس و معرفة rose

دمتم بود victory
  اللهم أحسن خاتمتنا وأخرجنا من الدنيا علي خير
[+] أعضاء أعجبوا بمشاركة TeRcO
#2
شكرا لك على المعلومة
وهذا كود بطريقة اخرى لتوليد 5 ارقام عشوائية
 
procedure TForm1.Button1Click(Sender: TObject);
var
  SourceArr: array[0..8] of Integer; // المصفوفة (9 أرقام)
  StartIndex, i: Integer;
  s: string;
begin
  Randomize;

  // تعبئة المصفوفة من 1 إلى 9
  for i := 0 to 8 do
    SourceArr[i] := i + 1;

  // اختيار بداية عشوائية بحيث لا تتجاوز (9 - 5 = 4)
  StartIndex := Random(9 - 5 + 1);  // يعطي 0..4

  s := '';
  for i := StartIndex to StartIndex + 4 do
    s := s + IntToStr(SourceArr[i]); // بدون مسافة

  Edit1.Text := s;
end;
[+] أعضاء أعجبوا بمشاركة karakoro


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم