PDA

View Full Version : مبتدی: برگرداندن عبارت بین دو $



mostafa272
پنج شنبه 20 آبان 1389, 19:27 عصر
با سلام

داخل برنامم می خوام رشته ای که بین دو علامت دلار "$" قرار می گیرد رو جدا کنم و برگردانم اما نمی دونم با چه کدی این کار رو انجام بدم.لطفا کمک کنید.

MSN_Issue
پنج شنبه 20 آبان 1389, 20:29 عصر
کد زیر رشته ی s رو تبدیل به یه آرایه میکنه که درواقع کلمات بین $ ها هستند :


string s = "first$sec$3th";
string [] result = s.split('$');

بعد از اجرای این کد آرایه ی result شما به این شکل در میآد :

result = {"first","sec","3th"}

Saman_12
پنج شنبه 20 آبان 1389, 20:44 عصر
اینم یه روش که البته فرقی با قبلی نداره!
ابتدا Microsoft.VisualBasic رو رفرنس کنید :

Microsoft.VisualBasic.Strings.Split("StringOne$StringTow", "$", -1, 0)[0];

mostafa272
جمعه 21 آبان 1389, 08:15 صبح
در واقع برنامه من یک تحلیل گر لغوی هست که کامنت ها بین دو علامت $ قرار می گیره و من می خوام عبارت بین اولین $ تا $ دوم یک کامنت باشه، عبارت بین $ سوم تا $ چهارم یه کامنت دیگه و همین طور تا انتها (در واقع $ مثل (*/) عمل کنه.کسی نظر دیگه ای نداره؟

mahdi87_gh
جمعه 21 آبان 1389, 08:33 صبح
شما باید از یک حلقه while استفاده کنید. به این ترتیب:
البته این کد رو من واسه کاری تقریبا شبیه به این نوشتم.که شما باید ویرایش کنید تا به شکل مناسب شما کار کنه.

filter = "";
string rawFilter=radGridView1.MasterGridViewTemplate.Filt er;
string op = "";
string field = "";
string value = "";

int n=0;
while(true)
{
op = "";
field = "";
value = "";
n=rawFilter.IndexOf("[",n+1);
if (n == -1)
break;
int x = n + 1;
int y = rawFilter.IndexOf("]", x);
field = rawFilter.Substring(x, y - x);
int z = rawFilter.IndexOf("'", y+1);
op = rawFilter.Substring(y + 1, z - y-1);
int k = rawFilter.IndexOf("'", z+1);
value = rawFilter.Substring(z+1, k - z-1);
value = "'" + value + "'";
if (filter != "")
filter += " AND ";
filter += "{Motekhalefin." + field + "}" + op + " " + value;

}