PDA

View Full Version : مبتدی: نیازمند 1 کد ((مبتدی))



mehrdad1991h
یک شنبه 23 مرداد 1390, 07:07 صبح
سلام
من 1 تا کد لازم دارم
1 بسیار مبتدی هست اگر امکانش هست کدش را بگید

1 - یه کد میخوام که قسمت نام من (مهرداد) را از نمونه ی رو به رو جدا کنه
نکته : نام مهرداد پس از اخرین "/" و بعد از اخرین "-" و قبل از اخرین دات "." قرار دارد

1/2/3/4/5/6/....../ab-c-d-efghi-jklm...-...xyz-MEHRDAD.HO5555555
لطفا در کدی که میدید هر 3 شرط باشه ((بعد از اخرین / و بعد از اخرین - و قبل از اخرین . ))

حالا 2 تا شرط دیگه هم این کد لازم داره
1 اگر بعد از اخرین / دیگر - موجود نبود هیچ اتفاقی نیفته((یا حالا مثلا بنویسه test یا هر چی دیگه)
2 اگر بعد از اخرین - دیگر . موجود نبود بعد از اخرین - را فقط جداکنه و نشون بدهد


باز هم از همگی شما ممنونم
از وقتی که میزارید و....
سپاس

modern_amin
یک شنبه 23 مرداد 1390, 10:21 صبح
من خوب منظورت و نفهمیدم چی میخای و برایه چی میخای
ولی میتونی اون متن رو ببری تو دستور و بگی هرجا مثلا X رو پیدا کردی اونرو با Y جایگزین کن


TEXT.Replace ("X","Y");

quantomquery
یک شنبه 23 مرداد 1390, 11:22 صبح
متنت رو از آخر پارس کن
به اولین نقطه ای که رسیدی قبلش متنت رو بنویس
اخرین دات همیشه تمام شروطی رو که گفتی داره
یعنی بجای ((بعد از اخرین / و بعد از اخرین - و قبل از اخرین . )) میتونستی بنویسی ((قبل از اخرین . ))
(شبیه هم هستند بجز موارد دارای خطا که مورد بحث نیست)

mehrdad1991h
یک شنبه 23 مرداد 1390, 11:45 صبح
من خوب منظورت و نفهمیدم چی میخای و برایه چی میخای
ولی میتونی اون متن رو ببری تو دستور و بگی هرجا مثلا X رو پیدا کردی اونرو با Y جایگزین کن


TEXT.Replace ("X","Y");



نمیشه ((متن متغیر هست بزنم مثلا اگه چی را پیدا کرد با چی جایگزین کنه که اینی که میگید بشه))


متنت رو از آخر پارس کن
به اولین نقطه ای که رسیدی قبلش متنت رو بنویس
اخرین دات همیشه تمام شروطی رو که گفتی داره
یعنی بجای ((بعد از اخرین / و بعد از اخرین - و قبل از اخرین . )) میتونستی بنویسی ((قبل از اخرین . ))
(شبیه هم هستند بجز موارد دارای خطا که مورد بحث نیست)

میشه یه کد بزارید که فقط 2 تا شرط قبل از اخرین . و بعد از اخرین - را داشته باشه؟؟

باید بیام من اول بگم بعد از اخرین - را جدا کنه بریزه تویه مثلا تکست باکس 1
بعد از تکست باکس 1 بیام بگم قبل از اخرین . را جدا کنه و بریزه تو نقطه ی دلخواه

همین طور باید انجام بدم؟
راه حل ساده تری نیس؟؟نمیشه هر دو کار را همزمان انجام بدهد؟؟؟

و فقط میمونه اون 2 تا شرط اخر برای جلوگیری از ارور (برا اون 2 تا شرط اخر چی کار کنم؟)

Esmail Solhkhah
یک شنبه 23 مرداد 1390, 11:52 صبح
دوست عزیز با این تیکه کد متنو اسپلیت کن به آرایه ای از استرینگها بعدش برات راحته که نامتو تو اون آرایه پیدا کنی

public static string[] Tokenize(string equation)
{
Regex RE = new Regex(@"([\.\+\-\*\(\)\^\\])");
return RE.Split(equation);
}

private void button3_Click(object sender, EventArgs e)
{

string text = "1/2/3/4/5/6/....../ab-c-d-efghi-jklm...-...xyz-MEHRDAD.HO5555555";

string[] splited = Tokenize(text);

}

موفق باشی.

mehrdad1991h
یک شنبه 23 مرداد 1390, 12:45 عصر
دوست عزیز با این تیکه کد متنو اسپلیت کن به آرایه ای از استرینگها بعدش برات راحته که نامتو تو اون آرایه پیدا کنی

public static string[] Tokenize(string equation)
{
Regex RE = new Regex(@"([\.\+\-\*\(\)\^\\])");
return RE.Split(equation);
}

private void button3_Click(object sender, EventArgs e)
{

string text = "1/2/3/4/5/6/....../ab-c-d-efghi-jklm...-...xyz-MEHRDAD.HO5555555";

string[] splited = Tokenize(text);

}

موفق باشی.

میشه بگید بعد از این که اسپیلیت شد چجوری میشه قسمتی که مد نظر من هست را پیداش کرد؟
متن متغیر هست اخه
فکر میکنم درست متوجه منظورتون نشدم
شرمنده یکم واضح تر اگه میشه بگید

Esmail Solhkhah
یک شنبه 23 مرداد 1390, 12:52 عصر
دوست عزیز بنده هم میدونم متن احتمال داره متغیر باشه ولی خودتون که تو همون پست اول فرمولشو گفتید


نکته : نام مهرداد پس از اخرین "/" و بعد از اخرین "-" و قبل از اخرین دات "." قرار دارد

حالا با کد بنده شما کل متن رو بصورت آرایه ای تفکیک شده از استرینگ تبدیل میکنید بعد داخل اون آرایه با همون فرمول اسم رو پیدا کنید

Esmail Solhkhah
یک شنبه 23 مرداد 1390, 13:25 عصر
با این تیکه کد هم نام رو بدست بیارید فقط دقت کنید موقعیت نام همیشه باید ثابت باشه

string text = "1/2/3/4/5/6/....../ab-c-d-efghi-jklm...-...xyz-MEHRDAD.HO5555555";

string[] splited = Tokenize(text);

string name = splited[splited.Length - 3];

mehrdad1991h
یک شنبه 23 مرداد 1390, 13:51 عصر
با این تیکه کد هم نام رو بدست بیارید فقط دقت کنید موقعیت نام همیشه باید ثابت باشه

string text = "1/2/3/4/5/6/....../ab-c-d-efghi-jklm...-...xyz-MEHRDAD.HO5555555";

string[] splited = Tokenize(text);

string name = splited[splited.Length - 3];

خیلی خیلی ممنونم
امیدوارم همیشه موفق باشید

magnet
یک شنبه 23 مرداد 1390, 13:57 عصر
می تونی از این کد استفاده کنی، تمام شرط ها رو هم قرار دادم:
string st = "1/2/3/4/5/6/....../ab-c-d-efghi-jklm...-...xyz-MEHRDAD.HO5555555";
string searchword = "MEHRDAD";
int a = st.LastIndexOf("/");
int b = st.LastIndexOf("-");
if (b < a)
return;
int c = st.LastIndexOf(".");
if (c < b)
MessageBox.Show(st.Substring(b + 1));
if (b > a && c > b)
{
int d = st.IndexOf(searchword, b);
if (d > 0)
{
MessageBox.Show("کلمه " + searchword + " در اندیس " + d + " تا " + (d + searchword.Length) + " وجود دارد");
}
}

abolfathi
سه شنبه 25 مرداد 1390, 23:29 عصر
اینم یه امتحان بکن

73911


string s2 = s1.Split('/')[s1.Split('/').Length - 1];
string s3 = s2.Split('-')[s2.Split('-').Length - 1];
if (s3.Split('.').Length > 1)
{
string s4 = s3.Split('.')[s3.Split('.').Length - 2];
label5.Text = s4;
}
else
{
label5.Text = s3;
}