المشاركات : 5
المواضيع 1
:
: 4
الإنتساب : Jun 2018
السلام عليكم ورحمة الله تعالى وبركاته
رمضان مبارك للجميع
هل فيه امكانية باستعمال الديلفي لاحصاء الحروف العربية مع الحركات كل على حدى في نص معين
المشاركات : 5
المواضيع 1
:
: 4
الإنتساب : Jun 2018
رجاءا اين انتم
وجدت برنامج هنا ، لكنه يحسب عدد الاحرف فقط
لكنني اريد ان احسب كل حرف على حدى
ربي يجازيكم
المشاركات : 1,677
المواضيع 349
:
: 1,069
الإنتساب : Nov 2013
[size=small]السلام عليكم ورحمة الله تعالى وبركاته[/size]
PHP كود : var i : integer; s2 : string; begin s2 := ''; for i := 1 to Length( s ) do begin ShowMessage (s[ i ]) ; end; end;
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم
المشاركات : 654
المواضيع 34
:
: 106
الإنتساب : Aug 2010
السلام عليكم
استخدم جدول الحروف العربية
فمثلا الحرف "ض" يساوي القيمة 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;
سبحان الله وبحمده سبحان الله العظيم
كل من 1 user says قال شكرا ل Agmcz على المشاركة المفيدة1 user says Thank You to Agmcz for this post
• said14
المشاركات : 5
المواضيع 1
:
: 4
الإنتساب : Jun 2018
السلام عليكم
وتقبل الله منا ومنكم صالح الاعمال
مشكورين اخوتي اسف لانني لم افهم بسبب طول ابتعادي عن البرمجة نسيت اغلب الاوامر والاجراءات
لكن لتبسيط الرؤية مثلا عندي كلمة او نص "بسم الله الرحمن الرحيم "
يعطيني تكرارات كل حرف
عملت برنامج في الاكسل بسيط يعطي تكرارات كل حرف في خانة معينة لكن اريد الكيفية عن طريق الدلفي
وجزاكم الله خير الجزاء
المشاركات : 654
المواضيع 34
:
: 106
الإنتساب : Aug 2010
وعليكم السلام
يمكنك التوضيح أكثر
هل تبحث عن تكرار الحروف في الجملة كاملة؟
سبحان الله وبحمده سبحان الله العظيم
كل من 1 user says قال شكرا ل Agmcz على المشاركة المفيدة1 user says Thank You to Agmcz for this post
• said14
المشاركات : 5
المواضيع 1
:
: 4
الإنتساب : Jun 2018
(06-06-2018, 11:50 PM)Agmcz كتب : وعليكم السلام
يمكنك التوضيح أكثر
هل تبحث عن تكرار الحروف في الجملة كاملة؟ رمضان كريم
نعم أخي
مثلا "بسم الله الرحمان الرحيم "
ا=4، ب=1 ، س=1 ..... الخ
المشاركات : 654
المواضيع 34
:
: 106
الإنتساب : Aug 2010
11-06-2018, 04:15 AM
(آخر تعديل لهذه المشاركة: 11-06-2018, 04:23 AM بواسطة Agmcz.)
هذا مثال يجسد الفكرة
يفضل أن تستخدم نسخة دلفي تدعم يونيكود يعني النسخ من 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;
سبحان الله وبحمده سبحان الله العظيم
المشاركات : 5
المواضيع 1
:
: 4
الإنتساب : Jun 2018
|