PDA

View Full Version : یعنی یک رقم بعد یک فاصله بعد یک رقم بعد یک فاصله و..



ali_abbasi22145
یک شنبه 29 مهر 1386, 12:50 عصر
سلام
ببخشید سوال کمی آسان را می پرسم چون کاربرم سریع می خواهد و وقتم هم کم!
یک 14 رقم عدد را می خواهم در فیلد دیگر به شکل: 12345678912345 است و در فیلد دیگر به شکل 5 4 3 2 1 9 8 7 6 5 4 3 2 1 (یعنی یک رقم بعد یک فاصله بعد یک رقم بعد یک فاصله و...) به شکل string ذخیره کنم.

manvaputra
یک شنبه 29 مهر 1386, 13:48 عصر
سلام دوست عزیز یعنی شما یه رشته داری مثلا 12345678 حلا می خوای اونو تبدیل کنی 8 7 6 5 4 3 2 1 درست متوجه شدم؟؟؟؟؟

hedi
یک شنبه 29 مهر 1386, 13:52 عصر
با سلام خدمت دوست گرامی
کاری که اول باید بکنی این است که اول عددت را به شکل رشته در بیاوری با تابع IntToStr بعد هم باید طول رشته را بدست بیاوری که اگر اشتباه نکنم تایع Strlen این کار را برات انجام می دهد
بعد یک حلقه ّFor می گذاری و از ابتدای رشته یکی به جلو می ری و بعد با تابع insert یک فاصله را درج می کنی البته کار درج در حلقه For به طور خودکار انجام می گیرد.
موفق باشی

manvaputra
یک شنبه 29 مهر 1386, 14:41 عصر
برای طول رشته که به راحتی از length استفاده میشه

rasool_brn
یک شنبه 29 مهر 1386, 17:00 عصر
از آرایه استفاده کن.

ghabil
یک شنبه 29 مهر 1386, 17:19 عصر
روی OnGetText فیلد دوم که میخوای نمایشش با فاصله باشه این کد را بزار:



var
i: Integer;
begin
for i:= 1 to Length(Sender.AsString) do
Text := Sender.AsString[i] + ' ';

ali_habibi1384
یک شنبه 29 مهر 1386, 17:44 عصر
سلام شما می تونین از تابع mid استفاده کنید پارامتر اول نام رشته دومی آدرس شروع و سومی تعداد کاراکترهای مورد نظر:


for i=1 to 14
x=mid(cstr(text1.text),i,1)+" " +cstr(x)'insert space for vb6
next i
text2.text=x

اطلاعات موجود در جعبه متن اول را هر کدام یک فاصله گذاشته در جعبه متن دوم می نویسد

manvaputra
یک شنبه 29 مهر 1386, 20:51 عصر
for i=1 to 14
x=mid(cstr(text1.text),i,1)+" " +cstr(x)'insert space for vb6
next i
text2.text=x

ذوست عزیز این که کد دلفی نیست!!!!!!!

dkhatibi
دوشنبه 30 مهر 1386, 06:01 صبح
روی onkeypress کلیک کن. کاراکتر وارد شده را بخون و با یک فاصله همراهکن به مقدار dbedit2 اضافه کن.

ali_abbasi22145
دوشنبه 30 مهر 1386, 10:28 صبح
سلام دوست عزیز یعنی شما یه رشته داری مثلا 12345678 حلا می خوای اونو تبدیل کنی 8 7 6 5 4 3 2 1 درست متوجه شدم؟؟؟؟؟

سلام
دقیقا همین را می خواهم.

ali_abbasi22145
دوشنبه 30 مهر 1386, 11:45 صبح
روی OnGetText فیلد دوم که میخوای نمایشش با فاصله باشه این کد را بزار:



var
i: Integer;
begin
for i:= 1 to Length(Sender.AsString) do
Text := Sender.AsString[i] + ' ';


سلام و تشکر
من نتوانستم کد شما را استفاده کنم اگر امکان دارد آن کد را در یک مثال دلفی درست کنید و اینجا آپلود کنید بی نهایت متشکر می شوم.
درضمن Edit , DBEdit رویداد OnGetText ندارند!

manvaputra
دوشنبه 30 مهر 1386, 12:24 عصر
سلام دوست عزیز از این تابع استفاده کن:


function mvp(s:string):string;
var
i:integer;
s1:string;
begin
s1:='';
for i:=1 to length(s) do
s1:=s1+s[i]+' ';
mvp:=trimright(s1);
end;

ghabil
دوشنبه 30 مهر 1386, 12:59 عصر
سلام و تشکر
من نتوانستم کد شما را استفاده کنم اگر امکان دارد آن کد را در یک مثال دلفی درست کنید و اینجا آپلود کنید بی نهایت متشکر می شوم.
درضمن Edit , DBEdit رویداد OnGetText ندارند!

OnGetText ماله Field هست، یعنی یکی دو سطح قبل از اینکه بخوای به هر کامپموننتی برسی و خوبیش هم به همینه که هر کامپوننتی که بزاری همینطوری نشون میده.
از فیلد هم منظورم اینه که روی دیتاست دبل کلیک کن و تمام فیلدها رو اضافه کن بعد یک فیلد دیگه هم اضافه کن که در واقع تکرار اون فیلدیه که میخوای به شکل دیگه ای نشون داده بشه ، حالا روی OnGetTextش کد رو بزار ، اینطوری دوتا فیلد داری یکیشون مقدار درست و یکی مقدار تغییر یافته رو نشون میده.

ali_abbasi22145
سه شنبه 01 آبان 1386, 12:01 عصر
سلام دوست عزیز از این تابع استفاده کن:


function mvp(s:string):string;
var
i:integer;
s1:string;
begin
s1:='';
for i:=1 to length(s) do
s1:=s1+s[i]+' ';
mvp:=trimright(s1);
end;

سلام
متشکر مشکلم حل شد.