大神们呀,求解c#一个问题

MichaelGLX 2017-08-11 06:11:42
txt文件内容如下
%ADD023C,0.06*%
%ADD034R,0.06X0.05*%
%ADD035R,0.02X0.025*%
%ADD036R,0.038X0.03*%
%ADD037R,0.03X0.038*%
%ADD038C,0.07*%
%ADD039C,0.08*%
%ADD040C,0.09*%
...............
以下很多行。
%ADD后面数字代表‘序号index’,C代表圆Circle,C后面数字代表直径diameter;R代表矩形Rect,R后面数字代表长length和宽width。
怎样读取直接存入结构体

输入序号 直接打印是矩形还是圆,其长宽或者其直径。

最好做Windows窗口程序

大神,谢谢了
...全文
344 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
MichaelGLX 2017-08-14
  • 打赏
  • 举报
回复
void GetADD(string strLine, out float c, out float d, out float e) { string[] ss = new string[10]; ss = strLine.Split(new char[] { '%', 'A', 'D', 'R', ',', 'X', '*' }, StringSplitOptions.RemoveEmptyEntries); c = Convert.ToSingle(ss[0]); d = Convert.ToSingle(ss[1]); e = Convert.ToSingle(ss[2]); }
MichaelGLX 2017-08-14
  • 打赏
  • 举报
回复
引用 5 楼 sp1234 的回复:
就是用 Split 分割字符串,判断字符串的第一个字符、最后一个字符,之类的几行代码就能逐个字段解析出来值。自己写吧。
我知道怎么用while循环解析每行的数值出来,也知道怎么建立结构体,把文本的数值逐行赋值给结构体的变量,就出现问题了。 private void button1_Click(object sender, EventArgs e) { float c1, d1, e1; FileStream fs = new FileStream("111.txt", FileMode.Open, FileAccess.Read); StreamReader sr = new StreamReader(fs); string strLine; All_Obj.Rect = new S_Rect[100]; for (int i = 0; i <= 100; i++) { while ((strLine = sr.ReadLine()) != null) { int Find_1 = strLine.IndexOf("%"); //取得可找%在哪里 if (Find_1 >= 0) //如果%存在 { GetADD(strLine, out c1, out d1, out e1); All_Obj.Rect[i].index = c1; All_Obj.Rect[i].width = d1; All_Obj.Rect[i].length = e1; } else continue; MessageBox.Show(All_Obj.Rect[i].index + " " + All_Obj.Rect[i].width + " " + All_Obj.Rect[i].length); } } } 这个有什么问题,帮忙解释一下 不管i等于多少,总是输出5组!
MichaelGLX 2017-08-14
  • 打赏
  • 举报
回复
*TXT文件内容如下 a123 b111 GG23 a154 b454 a454 GG11 a545 a966 c952 要求打印两行‘GG’之间的行的内容 该怎么做?
zhouxingyu896 2017-08-12
  • 打赏
  • 举报
回复
学习 学习
  • 打赏
  • 举报
回复
引用 2 楼 DOwnstairs 的回复:
file.readAllLines("你的文件名称") 然后就好办了。。。根据你自己的需求分析字符串即可。
我觉重点不是读取行,对于 lz 的重点是解析各个字段的思路。
  • 打赏
  • 举报
回复
就是用 Split 分割字符串,判断字符串的第一个字符、最后一个字符,之类的几行代码就能逐个字段解析出来值。自己写吧。
全栈极简 2017-08-11
  • 打赏
  • 举报
回复
就是File.ReadAllLines() 返回string数组,然后遍历数组获取每一行,按照规则分割字符串,判断。
SoulRed 2017-08-11
  • 打赏
  • 举报
回复
file.readAllLines("你的文件名称") 然后就好办了。。。根据你自己的需求分析字符串即可。
hajik 2017-08-11
  • 打赏
  • 举报
回复
我写好了

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧