delphi4arab منتديات دلفي للعرب

نسخة كاملة : برمجة مولّد أرقام
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم إخواني

لدي مشكلة في برمجة مولّد أرقام بسيط
مثال: أنا أحتاج الى توليد 10 أرقام وبهذه الصيغة
0000000000
0000000001
0000000002
......................
......................
9999999999

بأخذ كل الإحتمالات الممكنة

أنا إستخدمت الدالة for
PHP كود :
for a:= 0 to 9 do
for 
b:= 0 to 9 do
for 
c:= 0 to 9 do
for 
d:= 0 to 9 do
for 
e:= 0 to 9 do
for 
f:= 0 to 9 do
for 
g:= 0 to 9 do
for 
h:= 0 to 9 do
for 
i:= 0 to 9 do
for 
j:= 0 to 9 do
begin
Memo1
.Text:= Memo1.Text + IntToStr(a)+ IntToStr(b)+ IntToStr(c)+ IntToStr(d) + IntToStr(e)+  IntToStr(f)+ IntToStr(g)+ IntToStr(h) +IntToStr(i)+ IntToStr(j);
Memo1.Lines.Add(#$D);
end;
Memo1.Lines.SaveToFile('C:\1.txt'); 

المشكلة:
بعد طلب توليد الأرقام الجهاز يحدث له بلوك أظن سبب عدد الأرقام الهائل

إذا كان هناك حل أفضل من هذا فأتمنى منكم طرحه أو ربما تقسيم العمل الأول (الدالة for )إلى أجزاء

وشكرا لكم مسبقاً.
[COLOR="Purple"]:laugh:
طبعا ً ليس من المرغوب ان تكرر شيئ في البرمجة اكثر من الازم

اليك الحل :

اضف مكونين من Edit
اضف زر

في حدث الزر :

كود :
var Add: Integer; I: Integer; begin Edit2.Clear; Add := 10 - Length(Edit1.Text); for I := 1 to Add do Edit2.Text := Edit2.Text + '0'; Edit2.Text := Edit2.Text + Edit1.Text;

طبعا ً يوجد الكثير من الطرق لفعل ذلك برمجيا ً
يمكنك صنع دالة من الكود :

كود :
function Num10(Number: Integer): String; var Add: Integer; I: Integer; begin Add := 10 - Length(IntToStr(Number)); for I := 1 to Add do Result := Result + '0'; Result := Result + IntToStr(Number); End;

كود الأستدعاء :
كود :
Edit2.Text := Num10(StrToInt(Edit1.Text));

و لا تنسى اضافة Try قبل استدعائه .

سلام[/COLOR]
وعليكم السلام ورحمة الله
فقط بالنسبة لعرض الأرقام بنمط معين، يمكن استخدام شيء مثل:
PHP كود :
Edit2.Text := FormatFloat('0000000000', StrToFloat(Edit1.Text)) 
شكراً لكم سأحاول تطبيق ما تفضلتم به
وبالتوفيق للجميع