PDA

View Full Version : split کردن یک رشته و نمایش فیلدها



once4ever
پنج شنبه 18 مرداد 1386, 17:21 عصر
من سه تا جدول دارم: Forms, Files, Fields
جدولی که اسم فرمها رو داره و یک فیلد داره که بصورت رشته ای از نام فایلها هست
جدولی که اسم فایلهرو داره و جدولی که اطلاعات فیلد هر فایل داره.
من جدول فرمهارو با یک رکورد پر میکنم و به کریسال ریپورت میدم:
1. باید اسم فایلها از فیلدی که فایلهارو نگه میداره بدست بیاد. چجوری میشه یک رشته رو splite کرد؟
2. حالا اسم فایلها بدست میاد و مثلا داخل یک آرایه قرار میگیره. فیلتر کردن جدول فایلها با نامهایی که بدست اومده چجوریه؟
میدونم سوال بزرگی هست اما ممنون میشم راهنماییم کنید.

hdv212
شنبه 20 مرداد 1386, 17:26 عصر
چجوری میشه یک رشته رو splite کرد؟
برای Split کردن رشته از متد split کلاس string استفاده کنید و البته باید اون کاراکترهایی که رشته ها رو از هم جدا میکنند رو هم بهش پاس کنید، مثلا ','، اینطوری :

string s = "ali,mohammad,hassan-ahmad";
string[] s2 = s.Split(new char[] {',','-'});
البته توی مثال بالا از جداکننده های , و - استفاده کردم تا متوجه بشی.


فیلتر کردن جدول فایلها با نامهایی که بدست اومده چجوریه؟
برای این کار هم باید با توجه به تعداد رشته هایی که در آرایه ی s2 وجود داره، از حلقه ی for استفاده کنی و توی حلقه اونا رو فیلتر کنی، برای فیلتر کردن هم باید شرط رو در خاصیت Expression مربوط به Datatable ات قرار بدی.

once4ever
یک شنبه 21 مرداد 1386, 10:34 صبح
اینکارو یجور دیگه انجام دادم
تنکس انی وی ;)

tayebeh
یک شنبه 21 مرداد 1386, 13:46 عصر
باسلام
سئوالی که من دارم نیز بی ارتباط با سئوال مطرح شده نیست . من یه سند مالی دارم که در آن باید فیلدها بصورتی که لینک می بینید بیاید . به عنوان مثال سمت چپترین فیلد که رمز واحد می باشد را درنظر بگیرید . این فیلد باید حتما در سه ستون قرار بگیرد . با توجه به اینکه این فیلد در جدول بصورت رشته ثبت می شود . چطور آن را در سه ستون قرار دهم . علاوه بر آن گاهی اوقات کاراکترهای رمز واحد کمتر از سه ستون می باشند و باید بجای آنها صفر بگذارم .
لطفا مرا راهنمایی نمایید.
البته جواب دوست عزیزی که در مورد استفاده از split بود را خواندم ولی من در رشته هایم کاراکتری مانند , یا - را ندارم .

این لینک را جهت روشن شدن بیشتر مطلب گذاشتم .
http://i17.tinypic.com/6chxba8.jpg
باتشکر

hdv212
یک شنبه 21 مرداد 1386, 22:08 عصر
ببینم شما حالا چرا برای هر کدوم یه فیلد در نظر نمیگیری ؟

خب حالا داده ها رو به صورت رشته در دیتابیس ذخیره کرده باشی، در صورتی که دیتابیست sqlServer 2005 باشه (نمیدونم توی 2000 پشتیبانی میشه یا نه) باید از تابع substring استفاده کنی، مثل این :


select substring(customerID,1,1),
substring(customerID,2,1),
substring(customerID,3,1)
from customers