|
|
马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!
您需要 登录 才可以下载或查看,没有账号?立即加入
×
程序如下:大体思路,我顺序读取文件中的一行,然后统计一行中我需要的信息5 o- p/ i+ Z6 ]1 k* a/ I* w4 ?* ]
int k = 1;//统计PQ节点信息用) E. ^+ u2 |' T4 C/ }) z+ ~% ]) p
int h = 1;//统计PV节点信息用
- ?5 q# x& P0 m! C/ [ int x = 1;//统计线路信息用
- c& L' g6 p; m5 l; H, m, B
# G& Z( j1 d; S/ h; B' e" p5 a PQNode[0].i = 0;//规定第i个PQ节点存入PQNode[i]中2 P [" u% P* `$ C2 b, I
PVNode[0].i = PQnum;8 L* K7 P% u9 ]2 U& u* X
3 F. q# \. ~* |2 r& u+ Q/ B1 f
while ((line0 = sr.ReadLine()) != null); n/ d3 v3 L$ e {
{& z5 V+ h; l+ h9 ~$ B
if (line0.Length == 0). m# R3 ?8 v& d
continue;//如果一行为空,则继续下一次迭代
& k" J( }( k. ]1 d else
$ X" G% R9 K7 A* ^$ x aa = line0.Substring(0, 1);//aa存储一行中第一个字符
' l# {! {8 l) R. k+ j if (aa == "." || aa == "(" || aa == "/")
! L2 Z4 Z$ t2 ~1 I5 ]( D* n continue;//如果第一个字符为上面提到三种,则进行下一行迭代
) s2 n4 p# y8 O6 q1 o else//否则取一行中的前两个字符
. {# P3 P0 S+ [& Q- V line = Left(line0, 1, 2);//从第一个字符开始,取两个字符,送给line
, l( k. f( f" N# j; r/ V, w' ?# A8 T; b7 Y
if (Left(line0, 1, 2) == "BQ")* ~) l4 A5 T" S ^* m% M- P, Y
{+ s8 l( A @2 A' V) T
if (double.Parse(Left(line0, 58, 4)) > 100)//把指定位置的字符串转化为数值类型8 a8 |: x o7 a- G, A1 R. T2 L
{& f% ^$ \: D$ ~- S `
PVNode[h].V = double.Parse(Left(line0, 58, 4)) / 1000;//PVNode[h]为结构数组中第h个元素,V表示结构中的某个变量
, S+ O8 | F1 G1 v# W }
6 S6 l$ n6 E0 `/ R& U* D else5 X5 Y( w2 W4 X2 C. j
{
3 p/ u7 \7 q' M PVNode[h].V = double.Parse(Left(line0, 58, 4));
" P U5 `. K& B) y }
6 A7 O8 U: c, ]& }( e PVNode[h].i = PVNode[h - 1].i + 1;//对PVNode节点编号,PQnum+1。。。N-1(第N个为平衡节点)
Q3 E+ l+ G" ?, e$ I4 { PVNode[h].name = Left(line0, 7, 8);: {% D' h# s9 _8 y( _- l
h++;
4 g5 r/ \) N: S( f7 \ }
( g; a7 `1 j8 ]5 u/ K }7 E% N$ ?6 m' t7 ^" v6 G. r
textBox1.Text += "\r\n支路信息:" + PVNode[1].i ;) j3 c, f2 l7 j0 I& K6 C
为什么当我在运行程序后(没有显示错误),出来结果为“支路信息:0”啊
7 d) `1 j' _" k' U: [& T如果“+ PVNode[1].i”换成“+ PVNode[1].name”,则结果为“支路信息: ”,什么都没有!!!
2 b( I- n0 M7 |1 B) k请大侠指教!!! |
|