PDA

View Full Version : سوال: Split



MehdiElexal
شنبه 21 آبان 1390, 14:10 عصر
با سلام خدمت همه عزیزان
چطور میتونم داده زیر رو
$GPGLL,3547.7250,N,05131.4063,E,194512.346,A,A*50
بدین صورت Split کنم که 3547.7250 در txt1
و 05131.4063 در txt2 قرار بگیره
من بدین صورت split میکنم اما نمیتونم عمل جدا سازی رو انجام بدم
string str = textBox1.Text;
string[] array = str.Split('N',',');
string result = string.Join("/", array, 1, array.Length - 1);
textBox2.Text = result;
حال ممنون میشم راهنماییم کنید
در ضمن 3547.7250 هیچگاه طولش مشخص نیست شاید بشه 364.32 یا 364 باید عدد اول تا N محدود بشه و عدد بعدی تا E
پیشاپیش متشکرم از زحمات شما عزیزان
:بوس::بوس::بوس:

haniyehghassami
شنبه 21 آبان 1390, 15:26 عصر
سلام
برای split بر اساس کاما اینجور بنویس که :


string s = "gnl,978655.567567,N,546456.34563456,E,234534.34534 ,a,a*52";
string[] a = s.Split(',', ',');
int i = 0;
foreach (string item in a)
{
if (item=="N")
{
string t = a[i - 1];

}
if (item=="E")
{
string t = a[i - 1];
}
i++;
}



و برای جدا کردن

MehdiElexal
شنبه 21 آبان 1390, 20:23 عصر
چرا واژه $GPGLL که اول متن هست بعد از SPLIT نمایش داده نمیشه ؟!؟!؟!؟!
من میخوام اتفاقا بگم اگه اولش $GPGLL بود بعد بیا اونوقت اون دو قسمتی که گفتیم رو جدا سازی کنه
الان جدا میشه اما از بین این متون میخوام جدا کنم :
$GPVTG,301.50,T,,,0.00,N,0.00,K,A*77
$GPZDA,165503.901,12,11,2011,01,00*5A
$GPGGA,165504.901,3547.6699,N,05131.4306,E,1,05,01 .6,1782.1,M,2.2,M,,*6A
$GPGLL,3547.6699,N,05131.4306,E,165504.901,A,A*50
$GPGSA,A,3,19,
این اطلاعات خیلی بیشتر از این میباشد و من میخوام اونی که اولش $gpgll هست رو جدا کنم
با تشکر از همه عزیزان

sobaisobai
شنبه 21 آبان 1390, 21:36 عصر
چرا واژه $GPGLL که اول متن هست بعد از SPLIT نمایش داده نمیشه ؟!؟!؟!؟!
من میخوام اتفاقا بگم اگه اولش $GPGLL بود بعد بیا اونوقت اون دو قسمتی که گفتیم رو جدا سازی کنه

سلام
با کد زیر میتونی
if (item.StartsWith("$gpgll"))
{
//statment
}

omidh2007
یک شنبه 22 آبان 1390, 07:50 صبح
سوالت یه ذره گنگه . ولی اگه منظورتو درست متوجه شده باشم ، این کد جواب میده =>


List<string> data = new List<string>() {
@"$GPVTG,301.50,T,,,0.00,N,0.00,K,A*77" ,
@"$GPZDA,165503.901,12,11,2011,01,00*5A" ,
@"$GPGLL$,3547.7250,N,05131.4063,E,194512.346,A,A*50 $" ,
@"$GPGGA,165504.901,3547.6699,N,05131.4306,E,1,05,01 .6,1782.1,M,2.2,M,,*6A"
};

var q = data.Where(x => x.StartsWith("$GPGLL"));

foreach (var s in q)
{

string[] a = s.Split(',');

List<string> lst = new List<string>() ;

foreach (string item in a)
{
if (item != "N" && item != "E")
{
lst.Add(item);
}
}
foreach (var item in lst)
{
Console.WriteLine(item);
}

}