|
|
马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!
您需要 登录 才可以下载或查看,没有账号?立即加入
×
程序如下:大体思路,我顺序读取文件中的一行,然后统计一行中我需要的信息
# S7 h) W& F% e2 H( E' \5 { int k = 1;//统计PQ节点信息用
( v2 P5 J: [+ c% \- Z9 v int h = 1;//统计PV节点信息用
% m- x* w- i1 }- m* G5 H- p& S# @ int x = 1;//统计线路信息用
* m% b6 Z7 a; h- s0 Q w! b# H
; ^5 W& b1 N! g) x- c3 C PQNode[0].i = 0;//规定第i个PQ节点存入PQNode[i]中
+ u+ D2 b' N" F6 Q( [& f* j# J PVNode[0].i = PQnum;9 F4 ]1 s' H# o& m- D) q
1 W8 }2 n/ [& k' ^5 L# O: n# D while ((line0 = sr.ReadLine()) != null) t& q) D! X( Y; H; @9 `
{
5 n! y+ P. e% k0 X if (line0.Length == 0)+ i+ b1 |4 A$ ?) I C9 e
continue;//如果一行为空,则继续下一次迭代9 \# U# \: E" T7 D, L0 B
else
( S9 |7 d0 v, J( e* C( N; F aa = line0.Substring(0, 1);//aa存储一行中第一个字符# u: G9 Z3 X4 `
if (aa == "." || aa == "(" || aa == "/")
0 L6 Z6 ~8 J- u) ^ continue;//如果第一个字符为上面提到三种,则进行下一行迭代
' T' j; L6 e& ^ else//否则取一行中的前两个字符
" b7 ?, C4 |1 ?2 s" M line = Left(line0, 1, 2);//从第一个字符开始,取两个字符,送给line
* N5 L# {' ?- e$ _2 A- k. i ^' G7 t# m& r" V1 O
if (Left(line0, 1, 2) == "BQ"): m5 @3 U- c' ?/ u- v
{) Z, @: B2 M; k* y9 C$ Y# [1 i
if (double.Parse(Left(line0, 58, 4)) > 100)//把指定位置的字符串转化为数值类型; m+ F7 } q9 P$ ]& Z v4 ?7 _
{
& t: O3 z7 u2 z PVNode[h].V = double.Parse(Left(line0, 58, 4)) / 1000;//PVNode[h]为结构数组中第h个元素,V表示结构中的某个变量4 @6 Y1 b4 f4 p( a& a+ ~" @ ]
}
, t* p2 B* Y. x; `9 d else8 f1 `1 ? w! \+ W# ~
{) l1 M% i5 R9 a4 p3 Q. F
PVNode[h].V = double.Parse(Left(line0, 58, 4));; \& J+ U/ k" ?+ I1 ?$ `8 ~' {* c. ?8 N
}& H) W' }- C' [$ @4 N( v' d- `
PVNode[h].i = PVNode[h - 1].i + 1;//对PVNode节点编号,PQnum+1。。。N-1(第N个为平衡节点)
$ M9 ^9 ^5 d; W* g& H; K1 A PVNode[h].name = Left(line0, 7, 8);3 s& n- x$ M5 @- X5 R$ F" g* ~
h++;
2 G. g6 S9 w7 r: @4 m- B }. a, a: A' x8 T; O
}+ |# u/ `9 Z/ L% B) Y" Y; L1 j+ [* h
textBox1.Text += "\r\n支路信息:" + PVNode[1].i ;
! V3 Z6 \7 F1 i为什么当我在运行程序后(没有显示错误),出来结果为“支路信息:0”啊# a2 Y* e7 B' Z6 w6 B) t; Y- d) h( F* I
如果“+ PVNode[1].i”换成“+ PVNode[1].name”,则结果为“支路信息: ”,什么都没有!!!% x, _# Z( A% j9 i- h
请大侠指教!!! |
|