曾建飞 发表于 2014-3-30 20:37:10

C#中读取了文本文件,然后后的操作?

在winform中读取了txt文本,设置了第一行为“L (112, 100),(180, 100)第二行为C(112, 110, 50, 50)”
L代表直线,C代表圆,用什么方法在读取的txt中,改变坐标的值,winform上的图像也改变!

ibcadmin 发表于 2014-3-30 21:19:24

用流读取StreamReader读取   里面有个ReadLine()方法 是按行读取, 返回一个数组, 数组中每一行代表一行数据读取以后 用 spilt 截取并且修改

曾建飞 发表于 2014-3-30 22:52:03

ibcadmin 发表于 2014-3-30 21:19
用流读取StreamReader读取   里面有个ReadLine()方法 是按行读取, 返回一个数组, 数组中每一行代表一行 ...

妹怎么看懂,能实际结合给个例子吗?我是新手,谢谢

ibcadmin 发表于 2014-3-31 09:46:44

string[] message = File.ReadAllLines("你的txt路径", Encoding.Default);
                foreach (string item in message)
                {
   //item 就是你那一行的数据 L (112, 100)      //这时候已经得到了L的信息, 你用string的替换或者截取都行
}


曾建飞 发表于 2014-3-31 11:14:48

ibcadmin 发表于 2014-3-31 09:46
string[] message = File.ReadAllLines("你的txt路径", Encoding.Default);
    ...

非常感谢你的回复,请问有没有什么方法,把坐标给替换,这样任意写入个坐标数,图形就改变哦,下面的代码把new Point (112,100),new Point (180,100)和new Rectangle(112, 110, 50, 50)的坐标替换了,达到结果是随意改变坐标的数字,也可以画图! Graphics L = this.CreateGraphics();
            Pen myPen = new Pen(Color.Black, 1);
            
            string content = textBox2.Text;
            string[] str = content.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
            for (int i = 0; i < str.Length; i++)
            {
                if (str.StartsWith("L"))//确定此字符串的开头为L
                {
                  
               
                        L.DrawLine(myPen, new Point(112,100),new Point (180,100));
                  
                }
                else if (str.StartsWith("C"))
                {
                  Rectangle c = new Rectangle(112, 110, 50, 50);
                  L.DrawEllipse(myPen, c);
                }
                else
                {
                  MessageBox.Show("信息不符或为空!");

                }

ibcadmin 发表于 2014-3-31 16:51:55

给两个textbox改变呗, 声明变量X 和 Y   个对应textboxtextbox变了 坐标也就变了
页: [1]
查看完整版本: C#中读取了文本文件,然后后的操作?