文本文件名字叫 HOUSE.txt ,内容就是:
Rectangle
50
200
300
300
Line
200
50
0
250
Line………..总之就是根据这些文本信息去画出对应的图像。如何根据这些数字画出对应图像我已经很明白了,但是如何让我的visual studio能自动读取并执行呢?我从工具栏里往form上拖了个menustrip和openFileDialog1,设置了“open”的item,请问是直接双击它输入代码?还是在别的地方输入?比如openFileDialog1???
顺便帮我看看我目前为止有无错误吧!
const string Filter = "Text Files (*.txt)|*.txt|" + "All Files (*.*)|*.*";
string dir = @"J:\";
string path = dir + "HOUSE.txt";
StreamReader textIn =
new StreamReader(
new FileStream(path, FileMode.OpenOrCreate, FileAccess.Read));
string objectType;
Graphics paper = pictureBoxDisplay.CreateGraphics();
Pen pen1 = new Pen(Color.Blue, 2);
StreamReader reader;
reader = File.OpenText("HOUSE.txt");
openFileDialog1.Filter = Filter;
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
reader = File.OpenText(openFileDialog1.FileName);
while (reader.Peek() != -1)
{
objectType = reader.ReadLine();
Rectangle
50
200
300
300
Line
200
50
0
250
Line………..总之就是根据这些文本信息去画出对应的图像。如何根据这些数字画出对应图像我已经很明白了,但是如何让我的visual studio能自动读取并执行呢?我从工具栏里往form上拖了个menustrip和openFileDialog1,设置了“open”的item,请问是直接双击它输入代码?还是在别的地方输入?比如openFileDialog1???
顺便帮我看看我目前为止有无错误吧!
const string Filter = "Text Files (*.txt)|*.txt|" + "All Files (*.*)|*.*";
string dir = @"J:\";
string path = dir + "HOUSE.txt";
StreamReader textIn =
new StreamReader(
new FileStream(path, FileMode.OpenOrCreate, FileAccess.Read));
string objectType;
Graphics paper = pictureBoxDisplay.CreateGraphics();
Pen pen1 = new Pen(Color.Blue, 2);
StreamReader reader;
reader = File.OpenText("HOUSE.txt");
openFileDialog1.Filter = Filter;
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
reader = File.OpenText(openFileDialog1.FileName);
while (reader.Peek() != -1)
{
objectType = reader.ReadLine();
解决方案 »
- 如何获取安装文件的路径
- 朋友,当你闲暇时,不妨玩玩这个翻牌游戏
- 应用资源的问题??
- 怎样修改一个winform对象上的某个Label控件的值,可能有很多个label,需要精确定位到那条
- 调用WebService时,出现:未将对象引用设置到对象的实例
- 请教反射的一个问题
- 如何在.net中通过编程修改文件或文件夹的访问权限
- 如何以只读方式打开word文件?
- CrystalReport 怎么总是报错; The report has no tables.
- c# 建立udp连接问题
- 为什么编程连接数据库,读数据表时会出错,bindingsource绑定数据库时却不会出错
- 编写好一个小程序,安装完成如何实现自己所需要的图标。
StreamReader sr = new StreamReader(filePath);
String txtStr = sr.ReadToEnd();
就把文件里所有的内容都读近来了
sr.ReadLine()方法是每次读一行
具体看msdn
基本上就是读一下画一个的问题了。
建议你定义一个类或结构,保存这些信息:
public class Shape
{
int type; //0,1,2,3。对应直线、矩形、圆 List<Point> ptList; //存储图形对象坐标
}解析完后,统一写个函数,根据存储的图形对象的类型,调用Graphics.Draw系列函数画图!
{
StreamReader sr = new StreamReader(@"../../test.txt", true); string str = sr.ReadLine();
if (str != null)
{
txtZhangHao.Text = str.Trim();
}
sr.Close();
}
创建一个Line的对象。public class Line { public int x1; public int y1; public int x2; public int y2; public Line() {} }
创建一个对象列表:List<object> objectlist = new List<object>;
每次读取一行,判断
1)如果是文字Rectangle,则连续读取4行,
然后创建一个Rectangle的实例,并添加到objectlist里。
2)如果文字是Line,则连续读取4行,
然后创建一个Line的实例,并添加到objectlist里。
。
等把文件都处理完了,遍历objectlist,判断每个元素是Rectangle的就画矩形,是Line,就画线
/// <summary>
/// 读取文本文件
/// </summary>
/// <param name="Ppath"></param>
/// <param name="Pmess"></param>
/// <returns></returns>
public static List<string> ReadTxtFile(string Ppath, out string Pmess)
{
//抛出信息
Pmess = "";
List<string> Alist = new List<string>();//读取前准备 //连接
try
{
FileStream Afs = new FileStream(Ppath, FileMode.Open);
StreamReader Asr = new StreamReader(Afs, Encoding.GetEncoding("gb2312")); try
{
string AstrLine = "";
//开始读取
while (AstrLine != null)
{
AstrLine = Asr.ReadLine();
if (AstrLine != null && AstrLine.Trim().Length > 0)
{
Alist.Add(AstrLine);
}
}
//关闭读取流
Asr.Close();
Afs.Close();
return Alist;
}
catch (Exception ex)
{
Pmess = ex.Message;
return Alist;
}
}
catch (Exception exOut)
{
Pmess = exOut.Message;
return Alist;
}
}
1.读取txt文件返回List<string>
2.out 异常信息
3.原创 一直用这个方法