مشاهدة النسخة كاملة : طلب سؤال في الدلفي 7 للخبراء
adeloche
2013-06-20, 17:08
:dj_17:
كيف يمكنني التحويل من الـ str الى الـ hex والعكس
وكيف يمكنني تحديد نوع النص المدرج مثلا
يكون أرقام فقط أو حروف لاتينية فقط
أو قيم hex
ثم كيفية تحديد جزء فقط من النص للعمل عليه
مثلا في الـ
edit1.text:= '123456789';
أحتاج فقط الجزء بالأحمر
وشكرا
bobsat017000
2013-06-22, 12:47
بارك الله فيك على المجهود
:dj_17:
كيف يمكنني التحويل من الـ str الى الـ hex والعكس
وكيف يمكنني تحديد نوع النص المدرج مثلا
يكون أرقام فقط أو حروف لاتينية فقط
أو قيم hex
ثم كيفية تحديد جزء فقط من النص للعمل عليه
مثلا في الـ
edit1.text:= '123456789';
أحتاج فقط الجزء بالأحمر
وشكرا
السلام عليكم
التحويل من الـ str الى الـ hex
لا يوجد دالة جاهزة تقوم بهذا التحويل لذا يجب عليك انشاء دالة تقوم بهذا الغرض ثم استعملها في أي موضع تريد
هذه الدالة عملها هو تحويل الــ str الى int باستعمال ord حسب جدول شفرة آسكي ثم من int الى hex ,, ويتم اسناد النتيجة في متغير فارغ من خلال حلقة for أي تأخد الحرف الأول من الجملة أو الكلمة المدخلة وتحوله و تضعه في المتغير و في الدورة الثانة تأخد الحرف الثاني و هكذا الى أن تنتهي في الحرف الأخير و الذي تعرف رقمه من خلال length
الأمر بسيط يا أخي هذا مثال
Function adeloche(hapi00 : String):String;
var
h:integer;
begin
djelfa:='';
for h:=1 to length(hapi00) do
djelfa := djelfa+IntToHex(Ord(hapi00[h]),2);
end; هنا مشاهدة جدول شفرة أسكي (http://www.ascii-code.net/)
التحويل من الـ hex الى الـ str
استعمل '$' بجانب الحرف الذي هو بالـ hex سيعطيك الــ str
مثلا
adeloche:= ('$' + hapi00)___________________________________________ _________
تحديد نوع النص المدرج مثلا يكون أرقام فقط
استعمل if للتحقق من نوع المدخلات مثلا
if not (hapi00[h] in ['0'..'9'])thenثم ضع ما تريد في جواب الشرط مثلا تظهر له رسالة تخبره بأنه لم يدخل رقما ,, طبعا هذه الجملة الشرطية تكتبها داخل حلقة for وهذا للتأكد من كامل ما تم ادخاله مثل المثال السابق تماما for h:=1 to length(hapi00) do
تحديد نوع النص المدرج مثلا يكون أحرف فقط
مثل الأرقام فقط تستبدل
if not (hapi00[h] in ['a'..'z'])then
تحديد نوع النص المدرج مثلا يكون hex فقط
مثل الأرقام فقط أضف له 'a' .. 'f' مثلا
if not (hapi00[h] in ['0'..'9', 'a'..'f'])then
----------
أو باختصار و بدون حلقة for يمكنك استعمال key مثلا
if not (Key in [....]) then
مكان النقاط الزرقاء ضع ما تريد ,, مثل السابق للتحقق من الأرقم أو الحروف أو hex
__________________________________________________ ____________
تحديد جزء فقط من النص للعمل عليه
مثلا في الـ edit1.text:= '123456789';
نستعمل حلقة for لنحصل الا على الجزء الأحمر في متغير أخر و هكذا نعمل عليه كما نريد مثلا
for h:=1 to length(edit1.text) doثم تضع شرط if اذا h=5 يخرج من الحلقة حيث 5 هو ترتيب الحرف في الجملة أو الكلمة مثلا
edit1.text:= 'abcdef';هنا عندما يصل الى الحرف e و الذي هو h=5 يخرج من الحلقة
في الأخير نحصل على متغير يحمل abcde
يا أخي يعني مجرد قليلا من الذك و التفكير تستطيع عمل ما تريد
بالتوفيــق أخي الكريـــم
adeloche
2013-06-29, 13:29
السلام عليكم
التحويل من الـ str الى الـ hex
لا يوجد دالة جاهزة تقوم بهذا التحويل لذا يجب عليك انشاء دالة تقوم بهذا الغرض ثم استعملها في أي موضع تريد
هذه الدالة عملها هو تحويل الــ str الى int باستعمال ord حسب جدول شفرة آسكي ثم من int الى hex ,, ويتم اسناد النتيجة في متغير فارغ من خلال حلقة for أي تأخد الحرف الأول من الجملة أو الكلمة المدخلة وتحوله و تضعه في المتغير و في الدورة الثانة تأخد الحرف الثاني و هكذا الى أن تنتهي في الحرف الأخير و الذي تعرف رقمه من خلال length
الأمر بسيط يا أخي هذا مثال
function adeloche(hapi00 : string):string;
var
h:integer;
begin
djelfa:='';
for h:=1 to length(hapi00) do
djelfa := djelfa+inttohex(ord(hapi00[h]),2);
end; هنا مشاهدة جدول شفرة أسكي (http://www.ascii-code.net/)
التحويل من الـ hex الى الـ str
استعمل '$' بجانب الحرف الذي هو بالـ hex سيعطيك الــ str
مثلا
adeloche:= ('$' + hapi00)___________________________________________ _________
تحديد نوع النص المدرج مثلا يكون أرقام فقط
استعمل if للتحقق من نوع المدخلات مثلا
if not (hapi00[h] in ['0'..'9'])thenثم ضع ما تريد في جواب الشرط مثلا تظهر له رسالة تخبره بأنه لم يدخل رقما ,, طبعا هذه الجملة الشرطية تكتبها داخل حلقة for وهذا للتأكد من كامل ما تم ادخاله مثل المثال السابق تماما for h:=1 to length(hapi00) do
تحديد نوع النص المدرج مثلا يكون أحرف فقط
مثل الأرقام فقط تستبدل
if not (hapi00[h] in ['a'..'z'])then
تحديد نوع النص المدرج مثلا يكون hex فقط
مثل الأرقام فقط أضف له 'a' .. 'f' مثلا
if not (hapi00[h] in ['0'..'9', 'a'..'f'])then----------
أو باختصار و بدون حلقة for يمكنك استعمال key مثلا
if not (key in [....]) thenمكان النقاط الزرقاء ضع ما تريد ,, مثل السابق للتحقق من الأرقم أو الحروف أو hex
__________________________________________________ ____________
تحديد جزء فقط من النص للعمل عليه
مثلا في الـ edit1.text:= '123456789';نستعمل حلقة for لنحصل الا على الجزء الأحمر في متغير أخر و هكذا نعمل عليه كما نريد مثلا
for h:=1 to length(edit1.text) doثم تضع شرط if اذا h=5 يخرج من الحلقة حيث 5 هو ترتيب الحرف في الجملة أو الكلمة مثلا
edit1.text:= 'abcdef';هنا عندما يصل الى الحرف e و الذي هو h=5 يخرج من الحلقة
في الأخير نحصل على متغير يحمل abcde
يا أخي يعني مجرد قليلا من الذك و التفكير تستطيع عمل ما تريد
بالتوفيــق أخي الكريـــم
لا أجد كيف أشكرك
لا أجد كيف أشكرك
[ شــــــكــــــــــرا لــــــــــــــــــــــــــك ] <------ Thus only :mh92:
مرحبا أخى hapi00
ممكن جدول ascli الخاص باللغة العربية
samir mp3
2014-12-11, 13:03
للبحث عن كلمة داخل string استخدم string' )ansipos',var);
vBulletin® v3.8.10 Release Candidate 2, Copyright ©2000-2025, TranZ by Almuhajir