التعامل مع تنبيهات Compiler
#1
السلام عليكم ورحمة الله وبركاته

هناك تنبيهات من طرف Compiler محتواها :


PHP كود :
W1057 Implicit string cast from 'AnsiString' to 'string' 
بسبب هذا السطر :
PHP كود :
edt2.Text:=TCTC_CODE.Value; 
و
PHP كود :
W1058 Implicit string cast with potential data loss from 'TCaption' to 'AnsiString' 
بسبب هذا السطر :
PHP كود :
TCTC_NOM.Value:=edt3.Text; 

مع اني متأكد بأن المعلومات لن يحدث لها ضياع كما يزعم هذا Compiler .
هل اتجاهل تعليماته ام هناك حل اخر لتلبيت طلباته.
كن متواضعا ولا تكن متكبرا // الصبر + المثابرة = النجاح
الرد
#2
إقتباس :السلام عليكم ورحمة الله وبركاته

إقتباس :مع اني متأكد بأن المعلومات لن يحدث لها ضياع كما يزعم هذا Compiler .
الـ Compiler لا يدعي بل ينبهك Smile
نقل البيانات من سلسلة نصية حجم الحرف فيها 2 بايت إلى سلسلة أخرى حجم حرفها 1 بايت
فيه احتمال واضح لضياع بعد المحارف
مع ذلك فإن الاحتمال ضعيف نسبيا يمكن في كثير من الحالات تجاهله
يكفي لذلك الاستخدام القولبة (Type Cast) بمثل:
PHP كود :
edt2.Text := string(TCTC_CODE.Value); 
بالتوفيق.
الرد
#3
المبرمج المحترف لا يتجاهل التنبيهات لل Compiler بل يصحح و يمحص كوده جيدا .
وهدا مانسميه :
Tiny'd' clean Code ...Smile

كما قال اخي kachwahed :
إقتباس :
يكفي لذلك الاستخدام القولبة (Type Cast)

والسلام عليكم
الرد
#4
بارك الله فيكم وجزاكم خيرا

حلت المشكلة ..

قمت بتصحيح هذا الكود ايضا :
PHP كود :
TCTC_NOM.Value:=edt3.Text; 
الى :
PHP كود :
TCTC_NOM.Value:=AnsiString(edt3.Text); 

هل هاته هي الطريقة الوحيدة لتعامل مع هذا النوع من التنبيهات ؟
هل هي طريقة نظامية (طريقة متبعة من اغلب المبرمجين)؟
كن متواضعا ولا تكن متكبرا // الصبر + المثابرة = النجاح
الرد
#5
إقتباس :هل هي طريقة نظامية (طريقة متبعة من اغلب المبرمجين)؟
ضريبة التطور (دعم Unicode) Smile
الرد


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


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