View Full Version : سوال: مشکل با convert کردن به []int
masoud.a
پنج شنبه 19 مرداد 1391, 12:08 عصر
سلام
وقتی قطعه کد مثل این رو مینویسم میگه int به []int کانورت نمیشه.میتونید راهنمائیم کنید چکار کنم؟
int[] RxBuff = new int[260];
RxBuff = int.Parse(comport.ReadExisting());
tooraj_azizi_1035
پنج شنبه 19 مرداد 1391, 12:26 عصر
خروجی Parse فقط یه عدده اگه می خوای همه اعداد رو خارج کنی باید با Regex کار کنی:
string input = @"1-02345- 2,?:434343";
string pattern = @"\d"; // Match only digits
int[] RxBuff = new int[260];
RxBuff=Array.CovertAll<string,int>(Regex.Matches.OfType<string>().ToArray(),s => int.Parse(s));
masoud.a
پنج شنبه 19 مرداد 1391, 13:14 عصر
خروجی Parse فقط یه عدده اگه می خوای همه اعداد رو خارج کنی باید با Regex کار کنی:
string input = @"1-02345- 2,?:434343";
string pattern = @"\d"; // Match only digits
int[] RxBuff = new int[260];
RxBuff=Array.CovertAll<string,int>(Regex.Matches.OfType<string>().ToArray(),s => int.Parse(s));
ممنون فقط میشه یه کم درمورد کدتون توضیح بدین
aqawae
پنج شنبه 19 مرداد 1391, 13:21 عصر
int[] RxBuff = new int[260];
RxBuff = Array.ConvertAll(comport.ReadExisting().ToArray(), x => (int)x - 48);
حامد فراست
پنج شنبه 19 مرداد 1391, 15:46 عصر
جسارتا اگه از
Comport.Read()استفاده کنید بهتر نیست؟خودش مستقیما داده رو بصورت عددی و یا کاراکتری در اختیارتون میذاره!
http://msdn.microsoft.com/en-us/library/system.io.ports.serialport.read.aspx
tooraj_azizi_1035
پنج شنبه 19 مرداد 1391, 16:18 عصر
کد رو اصلاح می کنم تست شده و کار می کنه:
string input = @"1-02345- 2,?:434343";
string pattern = @"\d+"; // Match only digits
MatchCollection mc=Regex.Matches(input,pattern);
int[] RxBuff = new int[mc.Count];
RxBuff=Array.CovertAll<Match,int>(mc.OfType<Match>().ToArray(),m => int.Parse(m.Value));
\d+ الگویی هست برای استخراج تنها اعداد از داخل یک متن ترکیبی.
متد ConvertAll هم نوع ورودی اش Match است و نوع خروجی اش int. یک آرایه از نوع Match را میگیرد و با Parse مقدار Value برای هر عنصر آرایه نهایتاً یک ارایه از اعداد صحیح بر می گرداند.
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.