PDA

View Full Version : معادل دستور Left چیه؟



saber67
شنبه 20 مهر 1392, 19:54 عصر
اگه بخوایم تو یه رشته مثلا 4 کاراکتر اولش رو بیرون بکشیم از چه دستوری استفاده می کنیم؟

مثلا تو VB6 این جوریه:
Left("Sample Text",4)

یا تو VB.Net ظاهرا این جوریه
Strings.Left("Sample Text",4)

توی C# چه جوریه؟؟

از سایت ها و برنامه های تبدیل کد هم چیزی در نیومد! در واقع میومدن رفرنس زیر رو به برنامه اضافه می کردن و از همون کد VB.Net استفاده می کردن!!!
using Microsoft.VisualBasic;

مگه خود C# برای این کار دستوری نداره؟ میشه اصلا؟

esafb52
شنبه 20 مهر 1392, 20:31 عصر
دوست عزیز جستجووووووووووووووووو
string test = "abcdefgh";
string b = test.Substring(0, 4);

arefba
شنبه 20 مهر 1392, 21:00 عصر
یه چیزی میگی ها
اصلا فرض می کنیم که نداشته باشه نوشتن این دستو اولین تابعیبود که با c++ یاد گرفتم

Power.Csharp
شنبه 20 مهر 1392, 21:46 عصر
دستور substring که بالا هستش کاملا درسته اما اگه خواستین جدا سازی از جای خاصی انجام بشه میتونید از split استفاده کنید.سی شارپ رو دست کم نگیرید.وقتی می نویسید جستجو کردم نبوده سی شارپ نویسا بهشون بر می خوره مخصوصا در مورد این موضوع ساده.موفق باشید

saber67
شنبه 20 مهر 1392, 22:31 عصر
برای معادل سازی تابع Right من تابع زیر رو نوشتم، اگه راه بهتری هست، منم در جریان بزارین!

public string strRight(string strVal,int intLen)
{
if (intLen <= strVal.Length )
return strVal.Substring(strVal.Length - intLen, intLen);
else
return strVal;
}

saber67
شنبه 20 مهر 1392, 22:59 عصر
به تعداد مشخص از کاراکتر های سمت راست یه رشته رو برمی گردونه
مثلا توی VB6 تابع Right این جوری کار می کنه:
Right("Sample Text",2) ----> "xt"
این تابع که نوشتم هم کار مشابهی انجام میده

saber67
شنبه 20 مهر 1392, 23:07 عصر
نه برای پسوند نیست، در کل خیلی جاها این تابع Left و Right کاربرد دارن

saber67
یک شنبه 21 مهر 1392, 10:46 صبح
اگه مثلا میخوای پسوند فایل رو برگردونی چون دیدم 3تا کاراکتر میخوای بهتره از یه متد دیگه که خود سی شارپ داره استفاده کنی ضمنا این کوتاه تر نیست؟؟

public string right(string input)
{
return input.Substring(input.Length - 3);
}


نمی دونم این 3 رو کجا دیدی! من یه بار 4 نوشتم یه بار 2!
به هر حال گفتم که واسه کاربرد عمومی می خوام، تو پردازش متن خیلی وقت ها لازم میشه یه قسمت از سمت راست رشته رو واسه کاری چک کنی

این تابع شما فقط واسه 3 جواب میده، اما مال من واسه هر اندازه دلخواه جواب میده در ضمن اگه اندازه درخواستی از اندازه رشته بیشتر باشه به جای اینکه دچار خطا بشه خود رشته رو بر می گردونه که اصولی تره

در کل مرسی

esafb52
یک شنبه 21 مهر 1392, 22:03 عصر
آره بررسی کردم، این Substring کارو راه میندازه، اما برای کارای دیگه (معادل سازی با Right) یکم باید باهاش ور بری!
مثلا تو VB6 سه دستور Left, Right, Mid وجود داره اما تو C#‎‎‎‎‎ انگار هر سه اینا رو باید با همین Substring انجام داد!
منم کنجکاو شدم دیدم بله سی شارپ یک کتابخانه داره که کدهای وبی رو ساپورت میکنه فقط کافیه اولش اسمبلی Microsoft.VisualBasic رو اضافه کنین و بعد هم این رو به using ها اضافه کنین
using Microsoft.VisualBasic;
و بعدش هم

string test = "abcdefgh";
Strings.Mid(test, 2);
Strings.Left(test, 2);
Strings.Mid(test, 3);


موفق باشی

saber67
یک شنبه 21 مهر 1392, 22:45 عصر
منم کنجکاو شدم دیدم بله سی شارپ یک کتابخانه داره که کدهای وبی رو ساپورت میکنه فقط کافیه اولش اسمبلی Microsoft.VisualBasic رو اضافه کنین و بعد هم این رو به using ها اضافه کنین
using Microsoft.VisualBasic;
و بعدش هم

string test = "abcdefgh";
Strings.Mid(test, 2);
Strings.Left(test, 2);
Strings.Mid(test, 3);


موفق باشی

آره اینو همون اولم که گفتم با using Microsoft.VisualBasic; میشه از دستورات VB استفاده کرد
جالب بود برام ببینم معادل این تابع ها توی خود C# چی میشن!

morteza norouzi
یک شنبه 18 اردیبهشت 1401, 12:18 عصر
Left
Get specific number of characters (count) from left part
string.Substring(0, count)


Right
Get specific number of characters (count) from right side
string.Substring(string.Length
- count, count)


Mid
Get a specific number of characters (count) starting at a certain point (index)
string.Substring(index, count)


Mid
Get all characters starting at a certain point (index)
string.Substring(index)