View Full Version : اضافه کردن صفر یا فاصله به یک فیلد
aghaghi
دوشنبه 03 دی 1386, 21:34 عصر
سلام
من می خواهم طول عدد را مثلا 10 قرار بدهم. و اگر عددی طولش کمتر از 10 بود ، فضای خالی با صفر پر شود.مثلا: 24567 به صورت 0000024567 همینطور فایل های متنی مثل نام که باقیمانده فضا با Space پر شود. شما می توانید من را راهنمایی کنید؟
Profesorjd
دوشنبه 03 دی 1386, 21:59 عصر
با سلام
دوست تازه وارد اگر جستجو میکردید به جواب میرسید چراکه همین مورد سئوال بنده بود که دوستان با سه راه حل پاسخ دادند . یکیش با بنده که زکات یادگیریام را بدهم :
با استفاده از تابع Mid : اینگونه
( Mid(100000000000+[NameField] ;2
نکته این است که به تعداد رقمهایت جلوی عدد 10 صفر بگذار مثلاً اگر 15 رقم بود 1000000000000000 بنویس !
mazoolagh
دوشنبه 03 دی 1386, 22:13 عصر
وقتی format هست چرا راه غیراصولی؟
aghaghi
سه شنبه 04 دی 1386, 08:17 صبح
:ناراحت: من اصلا با Aceess کار نکردم . دو روز هم به من فرصت دادن که یک database بسازم و اطلاعات را به شکل خواسته شده در بیارم و TXT آن را تحویل بدم. اگر دعوام نمی کنید می شود بگویید چطوری انجام بدم
mostafa-sohrablou
سه شنبه 04 دی 1386, 11:10 صبح
سلام
با این کد مشکلت حل می شه.
For i = Len(Text0) To 10
Text0 = "0" & Text0
Next
aghaghi
سه شنبه 04 دی 1386, 12:35 عصر
من خلاصه موفق شدم. از format استفاده کردم.
num:format([stnum],"00000000")
aghaghi
سه شنبه 04 دی 1386, 13:53 عصر
خوب این ها که مربوط به عدد بود، برای حروف که قرار است با Space پر بشود از چه تابعی می توانم استفاده کنم؟
مهدی قربانی
سه شنبه 04 دی 1386, 14:16 عصر
سلام
دوست عزیز برای حذف فاصله بین کاراکترها می تونید از تابع Trim استفاده کنید .
شکل تابع :
Trim([Name])
انگوران
سه شنبه 04 دی 1386, 14:27 عصر
مهدی جان ظاهراً این تابع فاصله ابتدای یه فیلد رو حذف می کنه و فاصله ما بین کارکترها حذف نمیشه درسته ؟
مهدی قربانی
سه شنبه 04 دی 1386, 17:40 عصر
سلام
حبیب جان حق با شماست البته با LTrim ( فضای خالی سمت چپ ) و RTrim ( فضای خالی سمت راست ) حذف میشه .
aghaghi
سه شنبه 04 دی 1386, 17:45 عصر
نه نه! من نمی خواهم فاصله را حذف کنم. برعکس . من 33 تا فضا برای فیلد نام در نظر گرفتم. می خواهم بعد از اینکه کلمه علی نوشته شد بعدش تا انتهای رشته فضای خالی قرار بگیرد. مانند فضای خلی بعد عدد که تا انتهای رشته با صفر پر شده بود.
البته شاید منظور شما هم همین باشد. بااین دستور Text به سمت راست می رود و بقیه فضا خالی می ماند
aghaghi
سه شنبه 04 دی 1386, 19:51 عصر
خیلی محبت کردین. ولی دریغ از یک جابه جایی کوچک:ناراحت:
مهدی قربانی
سه شنبه 04 دی 1386, 22:28 عصر
سلام
دوست عزیز شما می خواید فضای خالی در کدوم سمت ( چپ یا راست )عبارت تایپ شده قرار بگیره ؟ ضمناً فارسیه یا انگلیسی .
aghaghi
چهارشنبه 05 دی 1386, 07:08 صبح
سلام
می خواهم فضای خالی سمت چپ فیلد باشه. فارسی است. مثلا علی را از سمت راست پر کند و بقیه فضا را خالی در نظر بگیرید.
انگوران
چهارشنبه 05 دی 1386, 08:20 صبح
با LTrim ( فضای خالی سمت چپ ) و RTrim ( فضای خالی سمت راست ) حذف میشه .
حالا اگه این فضای خالی بین فیلد باشه چطور ؟ یا اینکه فرض کنید فیلدی به این شکل ذخیره شده 0012020300450 اگه بخوام صفرهای موجود در فیلد حذف بشه و بقیه اعداد بهم بچسبند چکار باید بکنم ؟
مهدی قربانی
چهارشنبه 05 دی 1386, 09:55 صبح
حالا اگه این فضای خالی بین فیلد باشه چطور ؟ یا اینکه فرض کنید فیلدی به این شکل ذخیره شده 0012020300450 اگه بخوام صفرهای موجود در فیلد حذف بشه و بقیه اعداد بهم بچسبند چکار باید بکنم ؟
سلام
حبیب جان برای اینکار بهترین گزینه تابع Replace هست که با اون می تونید بگید که چه کاراکتری با چه چیزی جایگزین بشه .
مثال 1 عددی :
Replace([a];0;"")نتیجه : حذف صفرها
مثال 2 تکست :
Replace([a];" ";"")نتیجه : حذف فضای خالی بین عبارت
مهدی قربانی
چهارشنبه 05 دی 1386, 10:36 صبح
سلام
می خواهم فضای خالی سمت چپ فیلد باشه. فارسی است. مثلا علی را از سمت راست پر کند و بقیه فضا را خالی در نظر بگیرید.
شما می تونید در فرمی که از روی جدول می سازید با تنظیم خصوصیت Text Align فیلدها به Right ( در نمای Design ) عبارت وارده رو به سمت راست منتقل کنید .
aghaghi
چهارشنبه 05 دی 1386, 13:05 عصر
آخه آقا مهدی تو دستور کاری که بهم دادند آمده " در صورتیکه طول فیلد حرفی از مقدار تعیین شده کمتر باشد ار سمت چپ با Space پر شوند."
با Align کردن، هنگام گرفتن گزارش دیگه فضای خالی را در نظر نمی گیرد و با کوتیشن فقط خود مقدار فیلد را می نویسد.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.