|
|
|
马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!
您需要 登录 才可以下载或查看,没有账号?立即加入
×
程序如下:大体思路,我顺序读取文件中的一行,然后统计一行中我需要的信息
H3 X8 v; A9 B u0 A. _ int k = 1;//统计PQ节点信息用0 Z3 T7 U6 q4 x7 p
int h = 1;//统计PV节点信息用0 r& v; T6 H: \0 C9 J( U
int x = 1;//统计线路信息用
% U+ o- O) h2 m# F
/ ~/ M! Z% T% ^: C3 n8 l ~' G PQNode[0].i = 0;//规定第i个PQ节点存入PQNode[i]中% T. }, R* J5 [0 _* k- s
PVNode[0].i = PQnum;
2 s9 ?: E) u4 r+ R: w
* E8 S9 S' q$ }) O5 I while ((line0 = sr.ReadLine()) != null)
8 Y% t7 ~! v8 B {
, K% b2 F# W# r" b6 H% B$ v. b if (line0.Length == 0)
[; h. s3 k. f7 p( y% ?% {7 Y$ v continue;//如果一行为空,则继续下一次迭代
; V b% ]8 l$ z) a* w else* c! x- e* l7 x+ ~* a( A
aa = line0.Substring(0, 1);//aa存储一行中第一个字符
2 N- n+ a. ~+ h& G' ] if (aa == "." || aa == "(" || aa == "/")) u G; R7 Z% q, g; s3 H
continue;//如果第一个字符为上面提到三种,则进行下一行迭代
" s6 s' X/ p/ E: i. y$ Q+ Z else//否则取一行中的前两个字符
- D- N- O6 W! L5 J f! }; M) n line = Left(line0, 1, 2);//从第一个字符开始,取两个字符,送给line2 x. r" c0 r* J
0 k# U( I' d+ U Z7 ?- ]$ j
if (Left(line0, 1, 2) == "BQ"); v6 F: @5 ~/ P5 l' Y' h. w! u
{
" M9 K8 H* l9 n; E7 }6 ` if (double.Parse(Left(line0, 58, 4)) > 100)//把指定位置的字符串转化为数值类型
0 m( X' g: s( C7 z5 c2 |) @) I8 V {
- S4 A- ?6 z- c PVNode[h].V = double.Parse(Left(line0, 58, 4)) / 1000;//PVNode[h]为结构数组中第h个元素,V表示结构中的某个变量& w) A& }8 r" F+ Y$ h& R
}# n5 t, C5 L( g5 V" V% s' n" b
else/ P: z3 D+ l5 Y4 Q3 y0 K
{" p+ g9 I3 \: \+ w" f' F" t2 z* H- Z
PVNode[h].V = double.Parse(Left(line0, 58, 4));
% V* I2 m/ g0 A! H g. | }! g- n3 d4 b, @8 v8 y3 ~% q8 ?
PVNode[h].i = PVNode[h - 1].i + 1;//对PVNode节点编号,PQnum+1。。。N-1(第N个为平衡节点): @" z N. k% n2 i
PVNode[h].name = Left(line0, 7, 8);
, @* Y) ? L' ~ ]: e2 N/ V h++;7 z+ r4 Z$ c/ ~1 D3 n1 {
}9 e; f, ?7 z# F1 I a! G
}. O1 p% j5 E: B% S
textBox1.Text += "\r\n支路信息:" + PVNode[1].i ;8 n8 q7 [* @) i) y( m( A& h
为什么当我在运行程序后(没有显示错误),出来结果为“支路信息:0”啊% ^" {0 T, J, v9 m, L0 u5 Y( H
如果“+ PVNode[1].i”换成“+ PVNode[1].name”,则结果为“支路信息: ”,什么都没有!!!
2 A2 e6 a$ K9 E% D& n* f请大侠指教!!! |
|