|
马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!
您需要 登录 才可以下载或查看,没有账号?立即加入
×
程序如下:大体思路,我顺序读取文件中的一行,然后统计一行中我需要的信息
5 N4 u6 {5 D: J; h int k = 1;//统计PQ节点信息用% A ?( \4 a) y9 B4 q" Z
int h = 1;//统计PV节点信息用
6 `: R9 h0 A- c0 k7 o. K6 O( ~ int x = 1;//统计线路信息用5 A& e1 G4 d! @* }
8 c: ]7 H ?, y) M
PQNode[0].i = 0;//规定第i个PQ节点存入PQNode[i]中
* [8 J( K8 V& d3 w7 C PVNode[0].i = PQnum;
3 B% F8 m- S) r2 R% \' h, P, `5 s$ j6 C! C6 T# K! X- k9 J
while ((line0 = sr.ReadLine()) != null)2 ^+ R! K7 l) n
{
\+ I- L; L. K/ W if (line0.Length == 0)4 a+ \# k0 b0 z" X
continue;//如果一行为空,则继续下一次迭代& w1 X& N2 V: j4 G# X
else5 M4 E* H* _7 h
aa = line0.Substring(0, 1);//aa存储一行中第一个字符* S! }% ?3 e& D d; F, j% a
if (aa == "." || aa == "(" || aa == "/")6 u3 B T y" S
continue;//如果第一个字符为上面提到三种,则进行下一行迭代
; w& Q) \: \% L6 Z9 h. I else//否则取一行中的前两个字符
! n* W% l0 Q0 R& f. K9 s: s* N) R line = Left(line0, 1, 2);//从第一个字符开始,取两个字符,送给line1 |/ \5 G+ ?1 _0 A
7 k' s8 o2 L) d, g" Q' T6 m
if (Left(line0, 1, 2) == "BQ")
; Q' {$ s% E! {, w8 i7 d {% R& d `* C* z5 s& w4 |
if (double.Parse(Left(line0, 58, 4)) > 100)//把指定位置的字符串转化为数值类型; E7 F6 f- l6 _% Q1 o' F p
{, s7 T+ }, U" ]$ Z, q9 T* u
PVNode[h].V = double.Parse(Left(line0, 58, 4)) / 1000;//PVNode[h]为结构数组中第h个元素,V表示结构中的某个变量
1 d3 x( _# w- G& F }* r7 b* _8 F; g
else
' w* }! l; u4 o) U' D/ j( n8 }+ n {* ]7 x" x# t' U+ F$ Y& U
PVNode[h].V = double.Parse(Left(line0, 58, 4));
[8 u& K l! B. \* S( @ }0 X: g$ g2 I/ P4 C
PVNode[h].i = PVNode[h - 1].i + 1;//对PVNode节点编号,PQnum+1。。。N-1(第N个为平衡节点)
' j: t1 e0 ^( `% ~* v PVNode[h].name = Left(line0, 7, 8);
& C" m9 c" r% U3 G; ]- k2 ~ h++;
5 i5 r- q9 ?3 x7 }: g$ {9 I* M7 C }
+ B c0 B9 _! z# H) J! s8 R }
( ]: b+ a& t& P: [0 v5 y: v2 r textBox1.Text += "\r\n支路信息:" + PVNode[1].i ;
4 x$ o+ c6 Q$ j+ x, q) L为什么当我在运行程序后(没有显示错误),出来结果为“支路信息:0”啊* X3 f& g3 y/ Y7 _ ]
如果“+ PVNode[1].i”换成“+ PVNode[1].name”,则结果为“支路信息: ”,什么都没有!!!
2 x* m) J$ J4 f请大侠指教!!! |
|