|
马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!
您需要 登录 才可以下载或查看,没有账号?立即加入
×
程序如下:大体思路,我顺序读取文件中的一行,然后统计一行中我需要的信息
2 t# W. L \* s2 ?* m. a% d int k = 1;//统计PQ节点信息用
8 H1 d6 Y) N$ w2 z# C" y int h = 1;//统计PV节点信息用
: z/ x0 ?3 t) V- m+ w& u O; O int x = 1;//统计线路信息用
; h" `/ H6 B- b5 [) t) \! _( L$ o
' ~9 p6 o, ]4 b6 V( \& I PQNode[0].i = 0;//规定第i个PQ节点存入PQNode[i]中
" U+ r0 ~. ^9 b3 o/ ]4 V PVNode[0].i = PQnum;
' B2 T/ N3 I y+ P0 F
. T3 h& j$ c' _5 b5 b% y while ((line0 = sr.ReadLine()) != null)7 v4 ]- [$ [0 f
{
1 b; y4 ^2 h; i, e if (line0.Length == 0)
: e6 u/ F4 E" I& P$ u8 U continue;//如果一行为空,则继续下一次迭代
5 S# e8 y, Y+ ^8 _, Q else
. D0 K) c- q+ H/ L9 r# H9 K aa = line0.Substring(0, 1);//aa存储一行中第一个字符
" A4 ?' G6 s$ S+ K! K0 c e; c if (aa == "." || aa == "(" || aa == "/")/ I( Q0 E* d. ^! x L3 D: V
continue;//如果第一个字符为上面提到三种,则进行下一行迭代
' a; d+ t+ }" G; S1 S! L ^% R else//否则取一行中的前两个字符
& f/ @0 D7 a1 d line = Left(line0, 1, 2);//从第一个字符开始,取两个字符,送给line
' U' K& m4 S! N/ q- c! z0 K/ q1 Y, u# u" p9 O$ x
if (Left(line0, 1, 2) == "BQ")/ ~' V C% y9 ?
{6 j$ \* U9 y' _; `4 k, @( l! J) j
if (double.Parse(Left(line0, 58, 4)) > 100)//把指定位置的字符串转化为数值类型
& y. C9 R' C# I4 `2 G {
& D+ a5 a# e, P PVNode[h].V = double.Parse(Left(line0, 58, 4)) / 1000;//PVNode[h]为结构数组中第h个元素,V表示结构中的某个变量$ W: ]3 a9 e+ x
}! k9 Q5 g1 U& e- k, i" s
else
* F- }6 ^+ p. @- S6 X6 H1 h% L {
! c/ j4 I9 I! w/ c6 g' i+ M PVNode[h].V = double.Parse(Left(line0, 58, 4));( \6 F: {- H% b9 Y
}% P, v, j2 t4 b6 T# S( o: M
PVNode[h].i = PVNode[h - 1].i + 1;//对PVNode节点编号,PQnum+1。。。N-1(第N个为平衡节点)
; H3 i, t5 N9 }- D8 j PVNode[h].name = Left(line0, 7, 8);* \. b J K3 R! m) `* V- m0 s5 `1 e9 R
h++;
6 s/ U: X+ j9 f) e- x" \7 ?: p7 x }
6 g9 G$ G8 ~; N) F }
, d, Y! P4 \8 i9 C9 j textBox1.Text += "\r\n支路信息:" + PVNode[1].i ;1 B: P2 z& ~! F
为什么当我在运行程序后(没有显示错误),出来结果为“支路信息:0”啊! h2 c% ~( k/ i2 x* O
如果“+ PVNode[1].i”换成“+ PVNode[1].name”,则结果为“支路信息: ”,什么都没有!!!
) ^. e+ h; P8 a请大侠指教!!! |
|