PDA

View Full Version : اجرا نشدن یک کد در دلفی 2010



abazzi
جمعه 25 دی 1388, 22:59 عصر
سلام کد زیر تو دلفی 2007 اجرا میشه ولی 2010نه علتش رو تگه ممکنه توضیح بدین

a1:=edit2.Text;
f1:=length(a1);
for k1:=0 to f1 do
if (a1[k1]=',') then
strcopy(@a1[k1],@a1[k1+1] )
خط آخر رو ایراد میگیره

vcldeveloper
شنبه 26 دی 1388, 00:00 صبح
علتش اینه که string در دلفی 2010 یونیکد هست، ولی در دلفی 2007 یونیکد نیست، و ANSI هست.

هر کارکتر در ANSI یک بایت اشغال میکنه، ولی در یونیکد حداقل 2 بایت اشغال میکنه (ممکن هست برای برخی کارکترهای ویژه بیشتر هم باشه).

کد بالا با این پیش فرض نوشته شده که هر کارکتر فقط یک بایت هست.

برای کاری که شما می خواید انجام بدید، یعنی حذف کاما از داخل یک رشته، نیاز به این همه دردسر نیست؛ کافی هست اینطور بنویسید:

a1 := Edit1.Text;
a1 := StringReplace(a1,',','',[rfReplaceAll]);