|
|
|
马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!
您需要 登录 才可以下载或查看,没有账号?立即加入
×
程序如下:大体思路,我顺序读取文件中的一行,然后统计一行中我需要的信息
7 f" R3 c2 q3 @4 D int k = 1;//统计PQ节点信息用' h, H6 x! t% [7 r9 J
int h = 1;//统计PV节点信息用
, _" s6 a1 |+ S: h% H% j int x = 1;//统计线路信息用) J& s1 I& e* i0 H. S
4 `0 v$ B9 d2 A) t# \, x8 k1 L' i% w
PQNode[0].i = 0;//规定第i个PQ节点存入PQNode[i]中& n: _) m- `5 p- f7 v
PVNode[0].i = PQnum;
& z4 |" G. Q, c0 x: e. f; _9 c. M! m6 R) F* v
while ((line0 = sr.ReadLine()) != null)" y Z, w7 b' R W) F
{
) A. y. e# t- R1 E if (line0.Length == 0)/ g" {8 F' O* J2 {* @. V
continue;//如果一行为空,则继续下一次迭代
, l- \% ^+ N/ j& q3 t8 n" a" i0 i else
1 A5 \4 ]) H( p, Y0 z aa = line0.Substring(0, 1);//aa存储一行中第一个字符6 a/ z. n4 H$ Z2 }6 [5 }$ t* y9 a
if (aa == "." || aa == "(" || aa == "/")1 b+ J% d% y, n$ a5 p
continue;//如果第一个字符为上面提到三种,则进行下一行迭代6 H- F$ A) l4 ?9 E/ a; W4 @
else//否则取一行中的前两个字符# z% Z; f2 m+ r# r, E0 s
line = Left(line0, 1, 2);//从第一个字符开始,取两个字符,送给line
5 J4 W9 p8 F' E: X J& m: A9 {1 B, a
; e7 y) A: Z j/ t9 o* ^1 Z if (Left(line0, 1, 2) == "BQ"); f9 g k$ Q' H6 V1 q( ~8 m
{
# P1 b! @ }+ k) A$ X$ X9 C if (double.Parse(Left(line0, 58, 4)) > 100)//把指定位置的字符串转化为数值类型
* z; a9 d3 y% e5 [7 U! P. { {0 J+ u/ e4 `- w. b
PVNode[h].V = double.Parse(Left(line0, 58, 4)) / 1000;//PVNode[h]为结构数组中第h个元素,V表示结构中的某个变量
- `: X# M) L$ ?9 c6 Y }
6 Z1 h: f4 Z8 ^ else
5 X8 e0 ]$ ?! y, Y+ x$ P7 e3 Q {
) Z, \9 F3 e' X; F# R* n6 }' K5 J ~0 W PVNode[h].V = double.Parse(Left(line0, 58, 4));
1 q/ C' A/ K% J7 P" [8 B* E) D }3 `2 ?/ f& H" z# o' I3 U
PVNode[h].i = PVNode[h - 1].i + 1;//对PVNode节点编号,PQnum+1。。。N-1(第N个为平衡节点)
$ E0 k% {" {; H1 l6 n; { PVNode[h].name = Left(line0, 7, 8);9 U% A. e4 ^9 j6 N
h++;2 ]8 ?9 T8 O# l" D; o
}+ I, E8 E" Q# c0 U' ^1 Y8 |
}
2 u% v( ?+ O- X, y6 G textBox1.Text += "\r\n支路信息:" + PVNode[1].i ;- R7 c6 L" t$ M$ d
为什么当我在运行程序后(没有显示错误),出来结果为“支路信息:0”啊3 n7 \' O" r4 Y8 }, V& L7 v
如果“+ PVNode[1].i”换成“+ PVNode[1].name”,则结果为“支路信息: ”,什么都没有!!!
! e: ^5 P: X1 o' w! ~请大侠指教!!! |
|