View Full Version : جدا سازی ارقام
yazdan
یک شنبه 23 فروردین 1383, 12:15 عصر
من قبلا هم این سوال را پرسیده بودم ولی جواب نگرفتم
چگونه می توان اعداد را سه رقم سه رقم جدا نمود ؟ در تمامی حالات زیر چنین نیازی پیدا می شود ؟
1- grid ها
2- lable ها
3- edit ها » همان لحظه که تایپ می شود ویا پاک می شود باید این کار صورت گیرد.
اگه کسی این کارو کرده راهنمائیم کنه.
با تشکر - نیم رخ
JavanSoft
یک شنبه 23 فروردین 1383, 19:48 عصر
آیا با Display Formatجواب نگرفتید؟
kimia1
دوشنبه 24 فروردین 1383, 09:17 صبح
منم همین مشکل را داشتم ..ولی یه تابع نوشتم که برای نمایش اعداد بصورت سه رقم سه رقم جواب میده.بصورت زیر:
Function Encode3Digit(var Txt:String):String;
var
IMod,IDiv,code,IL,j,p,Posi:integer;
I:longint;
Txt1:String;
begin
Val(Txt, I, Code);
IL:=length(inttostr(i));
Txt1:=Inttostr(I);
IDiv:=IL Div 3;
IMod:=IL Mod 3;
P:=3;
If IMod=0 then
begin
for j:=1 to (IDiv-1) do
begin
Posi:=Length(Txt1)-p+1;
insert(',',Txt1,posi);
P:=P+4;
end;
end
else
begin
for j:=1 to IDiv do
begin
Posi:=Length(Txt1)-p+1;
insert(',',Txt1,posi);
P:=P+4;
end;
end;
Result:=Txt1;
end;
hr110
دوشنبه 24 فروردین 1383, 09:49 صبح
جسارتاً این کد رو هم یک امتحانی کنید:
var
M,I : Integer;
begin
M:=(Length(St)+2) div 3;
for I:=1 to M-1 do
Insert(',',St,(I*3)+I);
Result:=St;
end;
kimia1
دوشنبه 24 فروردین 1383, 11:04 صبح
جسارتا آقای ربیعی این کد برای اعدادی که طول آنها ضریب 3 ندارند جواب نمیده بطور مثال 1234567 را بصورت 123,456,7 نشون میده
hr110
دوشنبه 24 فروردین 1383, 13:23 عصر
بله کاملاً صحیح است ، این الگوریتم از سمت چپ عمل میکند( :oops: )
این فکر کنم مشکلی نداشته باشد:
function doIt(const St:string):string;
var
M,I : Integer;
S : string;
begin
S:=St;
M:=(Length(S)+2) div 3;
for I:=1 to M-1 do
Insert(',',S,Length(S)-((I*4)-2));
Result:=S;
end;
kimia1
یک شنبه 30 فروردین 1383, 10:20 صبح
احسنت :تشویق: مختصر و مفید
yazdan
دوشنبه 31 فروردین 1383, 00:04 صبح
باسلام خدمت رفقا
آقا بابت کدهاتون ممنون ولی ظاهرا منظورم رو کامل نرسونده ام
من می خوام توی onchenge هر edit ام یه تابعی صدا بزنم که این کارو برام بکنه
و ضمنا با Del و BackSpace هم کار بکنه.
اگه لطف کنید و کمکم کنید ممنون می شم.
kimia1
چهارشنبه 02 اردیبهشت 1383, 10:10 صبح
شما می تونید توی رویدادهای onEnter و OnExit توابعی را قرار بدید که اعداد را برای شما کد کرده و از حالت کد خارج کنند.فکر کنم یکی از روشهای خوب این باشه :متفکر:
hr110
چهارشنبه 02 اردیبهشت 1383, 10:45 صبح
با سلام
دوست عزیز شما میتوانید از کامپوننت زیر استفاده کنید، البته نوشتن این کامپوننت زیاد سخت نیست!
kimia1
شنبه 26 اردیبهشت 1383, 08:21 صبح
آقای ربیعی این کامپوننت شما تا 8 رقم بیشتر جواب نمیده :?: علت چیه؟
jirjirakk
شنبه 26 اردیبهشت 1383, 10:16 صبح
فدات حجت جان :kiss: :flower:
kimia1
شنبه 26 اردیبهشت 1383, 11:29 صبح
البته جناب آقای ربیعی ببخشید :oops: من یه کم کامپوننت شما را دستکاری کردم و یه خاصیت هم بهش اضافه کردم تا مقدار عدد صحیح را هم بده..البته ببخشیدها :oops: :gift:
رهام
شنبه 26 اردیبهشت 1383, 14:49 عصر
با سلام
من کامپوننت FLOAT EDITفارسی دارم که کارت رو راه می اندازد خواستی EMAIL بده تا برات بفرستم. :)
parhizkar2000
دوشنبه 28 اردیبهشت 1383, 00:37 صبح
آقا رهام همینجا بذار تا همگی استفاده کنیم
hr110
دوشنبه 28 اردیبهشت 1383, 07:30 صبح
آقای ربیعی این کامپوننت شما تا 8 رقم بیشتر جواب نمیده :?: علت چیه؟
NumLen برای این منظور تعبیه شده است :roll:
در مورد تغییر نیز خود مختارید
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.