01-06-2018, 02:36 PM
02-06-2018, 11:56 AM
رجاءا اين انتم
وجدت برنامج هنا ، لكنه يحسب عدد الاحرف فقط
لكنني اريد ان احسب كل حرف على حدى
ربي يجازيكم
وجدت برنامج هنا ، لكنه يحسب عدد الاحرف فقط
لكنني اريد ان احسب كل حرف على حدى
ربي يجازيكم
02-06-2018, 11:55 PM
[size=small]السلام عليكم ورحمة الله تعالى وبركاته[/size]
PHP كود :
var
i : integer;
s2 : string;
begin
s2 := '';
for i := 1 to Length( s ) do
begin
ShowMessage (s[ i ]) ;
end;
end;
04-06-2018, 04:22 AM
السلام عليكم
استخدم جدول الحروف العربية
فمثلا الحرف "ض" يساوي القيمة h0636 بنظام ترميز يونيكود
مثال للإستخدام
الجدول غير كامل فيه الحروف والرموز كما ذكرت...
استخدم جدول الحروف العربية
فمثلا الحرف "ض" يساوي القيمة h0636 بنظام ترميز يونيكود
مثال للإستخدام
الجدول غير كامل فيه الحروف والرموز كما ذكرت...
PHP كود :
const
// Arabic Unicode Character Table
AUCTable: array[0..49] of Word = (
$0621, $0622, $0623, $0624, $0625, $0626, $0627, $0628,
$0629, $062A, $062B, $062C, $062D, $062E, $062F, $0630,
$0631, $0632, $0633, $0634, $0635, $0636, $0637, $0638,
$0639, $063A, $063B, $063C, $063D, $063E, $063F, $0640,
$0641, $0642, $0643, $0644, $0645, $0646, $0647, $0648,
$0649, $064A, $064B, $064C, $064D, $064E, $064F, $0650,
$0651, $0652);
procedure TForm1.Button1Click(Sender: TObject);
var
I: Byte;
begin
for I := 0 to 49 do
Memo1.Lines.Add(WideChar(AUCTable[I]));
end;
06-06-2018, 11:39 PM
السلام عليكم
وتقبل الله منا ومنكم صالح الاعمال
مشكورين اخوتي اسف لانني لم افهم بسبب طول ابتعادي عن البرمجة نسيت اغلب الاوامر والاجراءات
لكن لتبسيط الرؤية مثلا عندي كلمة او نص "بسم الله الرحمن الرحيم "
يعطيني تكرارات كل حرف
عملت برنامج في الاكسل بسيط يعطي تكرارات كل حرف في خانة معينة لكن اريد الكيفية عن طريق الدلفي
وجزاكم الله خير الجزاء
وتقبل الله منا ومنكم صالح الاعمال
مشكورين اخوتي اسف لانني لم افهم بسبب طول ابتعادي عن البرمجة نسيت اغلب الاوامر والاجراءات
لكن لتبسيط الرؤية مثلا عندي كلمة او نص "بسم الله الرحمن الرحيم "
يعطيني تكرارات كل حرف
عملت برنامج في الاكسل بسيط يعطي تكرارات كل حرف في خانة معينة لكن اريد الكيفية عن طريق الدلفي
وجزاكم الله خير الجزاء
06-06-2018, 11:50 PM
وعليكم السلام
يمكنك التوضيح أكثر
هل تبحث عن تكرار الحروف في الجملة كاملة؟
يمكنك التوضيح أكثر
هل تبحث عن تكرار الحروف في الجملة كاملة؟
10-06-2018, 12:35 PM
(06-06-2018, 11:50 PM)Agmcz كتب : [ -> ]وعليكم السلامرمضان كريم
يمكنك التوضيح أكثر
هل تبحث عن تكرار الحروف في الجملة كاملة؟
نعم أخي
مثلا "بسم الله الرحمان الرحيم "
ا=4، ب=1 ، س=1 ..... الخ
11-06-2018, 04:15 AM
هذا مثال يجسد الفكرة
يفضل أن تستخدم نسخة دلفي تدعم يونيكود يعني النسخ من Delphi 2009 فما فوق
كما يمكنك لدعم Delphi 7 والنسخ الغير داعمة لليونيكود
تعديل الثابت في المثال السابق إلى
المثال يقوم بالتحقق من الحروف من ء إلى ي
بالتوفيق..
إصلاح المقارنة في مجال الأحرف
يفضل أن تستخدم نسخة دلفي تدعم يونيكود يعني النسخ من Delphi 2009 فما فوق
PHP كود :
const
// Arabic Unicode Character Table
AUCTable: array[0..41] of Word = (
$0621, $0622, $0623, $0624, $0625, $0626, $0627, $0628,
$0629, $062A, $062B, $062C, $062D, $062E, $062F, $0630,
$0631, $0632, $0633, $0634, $0635, $0636, $0637, $0638,
$0639, $063A, $063B, $063C, $063D, $063E, $063F, $0640,
$0641, $0642, $0643, $0644, $0645, $0646, $0647, $0648,
$0649, $064A);
const
ws = 'بسم الله الرحمان الرحيم';
function AUCTIndex(Value: Word): Byte;
begin
Result := Value mod $0621;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
I: Cardinal;
ca: array[0..41] of Cardinal;
begin
ZeroMemory(@ca, 42 * SizeOf(Cardinal));
for I := 1 to Length(ws) do
begin
if (Word(ws[I]) >= $0621) or (Word(ws[I]) <= $064A) then
Inc(ca[AUCTIndex(Word(ws[I]))]);
end;
for I := 0 to 41 do
case ca[I] of
1..SizeOf(Cardinal): Memo1.Lines.Add(WideChar(AUCTable[I]) + ' = ' + IntToStr(ca[I]));
end;
end;
كما يمكنك لدعم Delphi 7 والنسخ الغير داعمة لليونيكود
تعديل الثابت في المثال السابق إلى
PHP كود :
ws = WideString('بسم الله الرحمان الرحيم');
المثال يقوم بالتحقق من الحروف من ء إلى ي
بالتوفيق..
إصلاح المقارنة في مجال الأحرف
PHP كود :
const
// Arabic Unicode Character Table
AUCTable: array[0..41] of Word = (
$0621, $0622, $0623, $0624, $0625, $0626, $0627, $0628,
$0629, $062A, $062B, $062C, $062D, $062E, $062F, $0630,
$0631, $0632, $0633, $0634, $0635, $0636, $0637, $0638,
$0639, $063A, $063B, $063C, $063D, $063E, $063F, $0640,
$0641, $0642, $0643, $0644, $0645, $0646, $0647, $0648,
$0649, $064A);
const
ws = 'بسم الله الرحمان الرحيم';
function AUCTIndex(Value: Word): Byte;
begin
Result := Value mod $0621;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
I: Cardinal;
ca: array[0..41] of Cardinal;
begin
ZeroMemory(@ca, 42 * SizeOf(Cardinal));
for I := 1 to Length(ws) do
begin
case Word(ws[I]) of
$0621..$064A: Inc(ca[AUCTIndex(Word(ws[I]))]);
end;
end;
for I := 0 to 41 do
case ca[I] of
1..SizeOf(Cardinal): Memo1.Lines.Add(WideChar(AUCTable[I]) + ' = ' + IntToStr(ca[I]));
end;
end;
12-06-2018, 05:12 AM
بارك الله فيك