|
|
马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!
您需要 登录 才可以下载或查看,没有账号?立即加入
×
程序如下:大体思路,我顺序读取文件中的一行,然后统计一行中我需要的信息* c, {9 O/ Z+ [( z$ V. ^
int k = 1;//统计PQ节点信息用
3 ]" K8 C) _9 {! s t) ~ int h = 1;//统计PV节点信息用8 f6 O5 R- |& y" W4 t
int x = 1;//统计线路信息用- B; `1 _* }9 {' Z4 ~! @
0 a9 u2 u0 e, s3 c5 k# H* }
PQNode[0].i = 0;//规定第i个PQ节点存入PQNode[i]中+ v& q+ ^) j( C& J8 O4 @8 p
PVNode[0].i = PQnum;- [; T8 B |( L! q
7 `" _7 s# I6 h- ~2 V% ^ while ((line0 = sr.ReadLine()) != null)
* U L! u, ~. z. E$ Q/ C* _ {
$ \% W2 m1 q: a3 H" i6 k* O if (line0.Length == 0)5 p( s; n, z" ]$ X0 Z, z/ h
continue;//如果一行为空,则继续下一次迭代: [7 ^ `: S- a! C" y" \9 a
else8 ^; r6 ~+ w$ U# R
aa = line0.Substring(0, 1);//aa存储一行中第一个字符& c) w) C' m- G2 u' n
if (aa == "." || aa == "(" || aa == "/"), ~& U% [$ O: Z' f5 X
continue;//如果第一个字符为上面提到三种,则进行下一行迭代
% o$ z: t0 |/ J! { else//否则取一行中的前两个字符
& B/ N- S Q5 X2 z! D) m: m6 T& F line = Left(line0, 1, 2);//从第一个字符开始,取两个字符,送给line
# q( e5 n5 r: Z6 Z: _
( \. \5 c( G& Y- L$ F, W if (Left(line0, 1, 2) == "BQ")" i- b0 x1 u8 }$ a- Z: w
{) a1 [ ^: b0 ^) R9 f( D/ q* f& |
if (double.Parse(Left(line0, 58, 4)) > 100)//把指定位置的字符串转化为数值类型
0 K; K7 x V9 j0 `3 | {+ D# k! `6 v8 L) }3 g5 g! v7 Q! b/ R
PVNode[h].V = double.Parse(Left(line0, 58, 4)) / 1000;//PVNode[h]为结构数组中第h个元素,V表示结构中的某个变量
p$ \% P; s* I$ O }2 o9 [1 ^- x, R% A/ S {5 v# l* \
else
' ^# k8 G( I% j5 X2 X" D6 B/ P {
" |! @0 _" L5 z; |* W) g3 y# [+ u6 l PVNode[h].V = double.Parse(Left(line0, 58, 4));
* K& n# Q; e; w6 K J. \ A/ ] }
, |/ m. r# h" w3 t" K PVNode[h].i = PVNode[h - 1].i + 1;//对PVNode节点编号,PQnum+1。。。N-1(第N个为平衡节点)" W! E8 |7 S2 F( d
PVNode[h].name = Left(line0, 7, 8);
0 S1 T% g+ P) K h++;/ |# D* c2 T2 E* O3 V" f3 m- ?
}; H+ Y5 f: n3 N7 f& ~- J1 ^9 e
}9 K9 S: x# n# q+ z
textBox1.Text += "\r\n支路信息:" + PVNode[1].i ;
; o Y. S2 d9 X# b为什么当我在运行程序后(没有显示错误),出来结果为“支路信息:0”啊0 w; w( n' Q+ x- |
如果“+ PVNode[1].i”换成“+ PVNode[1].name”,则结果为“支路信息: ”,什么都没有!!!; W( M- `$ P; j* b( N- g/ {, p
请大侠指教!!! |
|