文本格式:
T1
0
1
2T2
3
4
5T3
7
5
2……T10
4
3
6
以T几作为判断,对变量赋值
譬如:判断该行是T1,就对变量cnt赋值0,cnt1赋值1,cnt2赋值2,判断该行是T2,就对变量cnt3赋值3,cnt4赋值4,cnt5赋值5,…………怎么来实现?以上的四行规律随即出现,也就是说有可能文本里就
T10
4
3
6
这四行,也有可能是有多个这样的排列,求个方法,怎么来实现?
T1
0
1
2T2
3
4
5T3
7
5
2……T10
4
3
6
以T几作为判断,对变量赋值
譬如:判断该行是T1,就对变量cnt赋值0,cnt1赋值1,cnt2赋值2,判断该行是T2,就对变量cnt3赋值3,cnt4赋值4,cnt5赋值5,…………怎么来实现?以上的四行规律随即出现,也就是说有可能文本里就
T10
4
3
6
这四行,也有可能是有多个这样的排列,求个方法,怎么来实现?
string str = sr.ReadLine();
if (str.StartsWith("T1"))
{
cnt=0;
cnt1=1;
cnt2=2;
}
if()
....
{
public string Tn;
public int[] num;
} Hashtable Ttable = new Hashtable(); StreamReader sr = new StreamReader();
string str = "";
while((str = sr.ReadLine) != null)
{
if (str[0] == 'T'))
{
Tclass tc = new Tclass();
tc.Tn = str;
int i = 0;
while ((str = sr.ReadLine) != "")
{
tc.num[i++] = int.Parse(str);
}
Ttable.Add(tc.Tn, tc);
}
} foreach(object o in Ttable)
{
//对数据的处理...
}
判断该行是T1,就对变量cnt赋值0,cnt1赋值1,cnt2赋值2,判断该行是T2,就对变量cnt3赋值3,cnt4赋值4,cnt5赋值5 没有说明白,不是很清楚你的意图
cnt 采用数组来实现![code=C#]
StreamReader sr = new StreamReader();
string str = sr.ReadLine();
if (str.substring(0,1)=='T')
{
int xx= int.pare(str.substring(1))
}
cnt[xx++]=sr.ReadLine();
cnt[xx++]=sr.ReadLine();
cnt[xx]=sr.ReadLine();
不知道对不?
不能赋成数组吗 cnt[0],cnt[1],cnt[2]...
如果能赋成数组就简单多了,如果变量名不一样的话有只能用switch/case了.
{
private string myValue;
public ChangeValue(string str)
{
myValue = str;
} public void WriteLine()
{
Console.WriteLine("MyValue is: " + myValue);
}
} class Test
{
public static void ChangeValue()
{
//通过反射获取并修改字段,注意反射甚至可以修改私有字段,其他类型的是没的说了
ChangeValue cv = new ChangeValue("old value");
cv.WriteLine(); Type t = ((object)cv).GetType();
FieldInfo field = t.GetField("myValue",
BindingFlags.NonPublic | BindingFlags.Instance);
field.SetValue(cv, "new value"); cv.WriteLine();
}
}
public class Tclass
{
public string Tn;
public int[] num;
} Hashtable Ttable = new Hashtable(); StreamReader sr = new StreamReader();
string str = "";
while((str = sr.ReadLine) != null)
{
if (str[0] == 'T'))
{
Tclass tc = new Tclass();
tc.Tn = str;
int i = 0;
while ((str = sr.ReadLine) != "")
{
tc.num[i++] = int.Parse(str);
}
Ttable.Add(tc.Tn, tc);
}
} foreach(object o in Ttable)
{
//对数据的处理...
}class ChangeValue
{
private string myValue;
public ChangeValue(string str)
{
myValue = str;
} public void WriteLine()
{
Console.WriteLine("MyValue is: " + myValue);
}
} class Test
{
public static void ChangeValue()
{
//通过反射获取并修改字段,注意反射甚至可以修改私有字段,其他类型的是没的说了
ChangeValue cv = new ChangeValue("old value");
cv.WriteLine(); Type t = ((object)cv).GetType();
FieldInfo field = t.GetField("myValue",
BindingFlags.NonPublic | BindingFlags.Instance);
field.SetValue(cv, "new value"); cv.WriteLine();
}
}