Bug in Ord Function
#1
السلام عليكم ورحمة الله و بركاته

اليوم و أنا أحاول كتابة دوال جديدة لمشروعي .. صدف و أن وجدت Bug في الدالة Ord
الدالة Ord لا تدعم ال Unicode !! في جميع نسخ دلفي الحديثة ..
المشكل هو أن حجم ال Char في اليونيكود = word , لكن في الدالة ord ال Result من نوع Byte
لقد قمت بالتبليغ عن هذه المشكلة في ال QC

الحل : الحل بسيط جدا
PHP كود :
function FastORD (c:Char):{$IFDEF UNICODE} WORD {$ELSE} Byte {$ENDIF};
asm
  
{Note : The RTL ORD Function Does not support Unicode }
  {Use 
FastORD to support Unicode }
  {Do 
nothing !!}
end; 

كما تلاحظ تستطيع استخدام الدالة FastOrd لدعم اليونيكود
PHP كود :
Edit1.Text := IntToHex(Ord('ج'), 4); // Return 00CC
  
Edit2.Text := IntToHex(FastORD('ج'), 4); // Return 062C 
و السلام عليكم


الردود في هذا الموضوع
Bug in Ord Function - بواسطة SMP3 - 30-03-2013, 01:19 PM
Bug in Ord Function - بواسطة ALmuhhnad - 02-04-2013, 12:09 AM
Bug in Ord Function - بواسطة ALmuhhnad - 02-04-2013, 12:29 AM
Bug in Ord Function - بواسطة ALmuhhnad - 02-04-2013, 02:32 AM
Bug in Ord Function - بواسطة ALmuhhnad - 02-04-2013, 02:56 AM
Bug in Ord Function - بواسطة SMP3 - 02-04-2013, 12:09 PM
Bug in Ord Function - بواسطة SMP3 - 02-04-2013, 12:15 PM
Bug in Ord Function - بواسطة ALmuhhnad - 02-04-2013, 01:32 PM
Bug in Ord Function - بواسطة SMP3 - 03-04-2013, 07:41 PM
Bug in Ord Function - بواسطة shagrouni - 19-04-2013, 09:43 AM

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


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