PDA

View Full Version : سوال: جدا كردن مقادير مورد نظر از يك فايل متني



ali_mp64
سه شنبه 11 تیر 1387, 13:34 عصر
سلام دوستان .
من يه فايل متني به صورت زير دارم

X[0]=28.250000 MR[0]=0.000000
X[1]=27.250000 MR[1]=1.000000
X[2]=27.500000 MR[2]=0.250000
X[3]=27.250000 MR[3]=0.250000
X[4]=27.750000 MR[4]=0.500000
X[5]=28.250000 MR[5]=0.500000
X[6]=28.000000 MR[6]=0.250000
X[7]=28.500000 MR[7]=0.500000
X[8]=28.500000 MR[8]=0.000000
X[9]=28.750000 MR[9]=0.250000
X[10]=29.000000 MR[10]=0.250000
X[11]=29.250000 MR[11]=0.250000
X[12]=29.250000 MR[12]=0.000000
X[13]=29.500000 MR[13]=0.250000
X[14]=29.500000 MR[14]=0.000000
X[15]=29.500000 MR[15]=0.000000
X[16]=29.750000 MR[16]=0.250000
X[17]=30.000000 MR[17]=0.250000
X[18]=30.000000 MR[18]=0.000000
X[19]=30.250000 MR[19]=0.250000
X[20]=30.250000 MR[20]=0.000000
X[21]=30.250000 MR[21]=0.000000
X[22]=30.250000 MR[22]=0.000000
X[23]=30.750000 MR[23]=0.500000
X[24]=30.250000 MR[24]=0.500000
X[25]=30.500000 MR[25]=0.250000
X[26]=30.250000 MR[26]=0.250000
X[27]=30.250000 MR[27]=0.000000
X[28]=30.500000 MR[28]=0.250000
X[29]=30.500000 MR[29]=0.000000
x_total=29.325000 MR_total=0.232759
mr_upper=0.760422

مي خوام مقادير عددي x و mr و x_total و mr_total و mr_upper رو به ترتيب درون دو آرايه و سه متغير بريزم . اگه ممكنه راهنمائيم كنين .
ممنون .

mdssoft
چهارشنبه 12 تیر 1387, 07:23 صبح
باید از کلاس Regex استفاده کنی .

mdssoft
چهارشنبه 12 تیر 1387, 07:38 صبح
به طور مثال این کد رو ببین که تمامی مقادیر X ها رو بر می گردونه :


using System.Text.RegularExpressions;

[STAThread]
static void Main()
{
string str = @"X[0]=28.250000 MR[0]=0.000000
X[1]=27.250000 MR[1]=1.000000
X[2]=27.500000 MR[2]=0.250000
X[3]=27.250000 MR[3]=0.250000
X[4]=27.750000 MR[4]=0.500000
X[5]=28.250000 MR[5]=0.500000
X[6]=28.000000 MR[6]=0.250000
X[7]=28.500000 MR[7]=0.500000
X[8]=28.500000 MR[8]=0.000000
X[9]=28.750000 MR[9]=0.250000
X[10]=29.000000 MR[10]=0.250000
X[11]=29.250000 MR[11]=0.250000
X[12]=29.250000 MR[12]=0.000000
X[13]=29.500000 MR[13]=0.250000
X[14]=29.500000 MR[14]=0.000000
X[15]=29.500000 MR[15]=0.000000
X[16]=29.750000 MR[16]=0.250000
X[17]=30.000000 MR[17]=0.250000
X[18]=30.000000 MR[18]=0.000000
X[19]=30.250000 MR[19]=0.250000
X[20]=30.250000 MR[20]=0.000000
X[21]=30.250000 MR[21]=0.000000
X[22]=30.250000 MR[22]=0.000000
X[23]=30.750000 MR[23]=0.500000
X[24]=30.250000 MR[24]=0.500000
X[25]=30.500000 MR[25]=0.250000
X[26]=30.250000 MR[26]=0.250000
X[27]=30.250000 MR[27]=0.000000
X[28]=30.500000 MR[28]=0.250000
X[29]=30.500000 MR[29]=0.000000
x_total=29.325000 MR_total=0.232759
mr_upper=0.760422";

MatchCollection x1 = Regex.Matches(str, @"X\[[^\]]*\]=[^M]+");
foreach (var item in x1)
//Console.WriteLine(Regex.Replace(item.ToString(), @"X\[[^\]]*\]=", ""));
Console.WriteLine(item);
Console.ReadKey();
}