怎么读入txt 我需要在richtxtbox中读入一个固定的txt文件内容,现在只能把txt放在debug下面,如果exe文件移动了就不行了我想在项目中直接加入txt后,有什么办法不需要附带txt在exe文件的目录下了????? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你给一个输入txt文件所在绝对路径的输入框让用户输入,或者使用OpenFileDialog类来让用户选择文件的所在位置。 字符串好长啊....我在项目中添加了txt,但不知道怎么引用它,我是要交作业,所以不能用绝对路径啊,,,还有3楼说的什么,不懂 你在项目里怎么添加txt的啊?展开项目的Properties目录,双击Resources.resx,打开资源浏览窗口,添加你想要的文件,然后使用Properties.Resources类的属性来访问你添加的资源。 Properties目录是项目自带的,不用你添加。Resources.resx文件是个全局资源文件,创建项目时就会自动产生的,也不用你添加。Properties.Resources是个静态类,不用实例化直接可以使用的。 我添加到资源文件中了:这是我引用的代码 richTextBoxCode.Text = File.ReadAllText("Move.txt", System.Text.Encoding.Default);要怎么引用啊 如果你添加的就是那个Move.txt的话,这样就应该可以了:richTextBoxCode.Text = Properties.Resources.Move;如果Move名字被占用,估计系统会取别的名字,你看下提示就知道了。 错误 1 当前上下文中不存在名称“Properties” D:\学习\信息系统安全\Encrypt\Encrypt\FormMove.cs 432 36 Encrypt 绝对路径用@".\filename.txt"就可以读的话用流应该就OK 不可能的,难道你都没有那个Properties目录吗?你重新创建一个新的项目看下,那个Properties就在最上面第一个,图标有点特殊,不是文件夹的图标,那个是项目的属性目录,绝对存在的。查看项目属性的时候也要用到那个目录里存放的信息的。 除非你的类内部声明的命名空间(FormMove.cs内部的namespace部分)与你的项目名不同Properties采用的是你的项目名同名的命名空间,因为同名,所以我省略了命名空间的前缀。 什么都不需要引用,你要是还找不到原因,打开Resources.Designer.cs开下里面的namespace关键字后面写的是什么,应该是类似WindowsFormsApplication1.Properties那样的一串较长的字符串,你写完整了就肯定可以。比如我的项目叫WindowsFormsApplication1,那么就这样:richTextBoxCode.Text = WindowsFormsApplication1.Properties.Resources.Move; 不过谢谢你拉qldsrx,好像相对引用也得把那个txt和exe都拷过去,没有解决我的问题呀 用读取流啊!FileStream fs = File.OpenRead(textBox1.Text); byte[] my = new byte[256]; UTF8Encoding Date = new UTF8Encoding(true); while (fs.Read(my, 0, my.Length) > 0) { textBox2.Text = Date.GetString(my); } fs.Close();应该可以吧1! 你自己都说了相对路径也会改变,那怎么可以使用相对路径啊。别人一般程序都是一个目录下保持一个完整的结构使用的,就算放桌面也是发送一个快捷方式,目录结构不变,不会单独复制一个exe文件到桌面运行,你的程序小,复制一个exe文件到桌面就可以运行了,不过却会破坏目录结构(如果需要引用外部文件的话)。 我是要交作业,所以只能像你说的那么做了,不过msdn里面怎么没有properties这个类呀 Properties是命名空间的一部分,后面的Resources才是类,没找到Properties很正常。那个命名空间是由“项目名.Properties”组成的,使用的时候如果项目名一致,前面一半还可以省略掉。 public void ExportToTxt2(DataSet ds, string TXTPATH) { string TXTPOSTFIX = ".txt"; if (ds.Tables.Count != 0) { string ProjectID = "garbage_list"; //创建一个.txt文件,文件名用项目名 FileInfo file = new FileInfo("" + TXTPATH + ProjectID + TXTPOSTFIX + ""); StreamWriter textFile = null; try { textFile = file.CreateText(); } catch { System.Web.HttpContext.Current.Response.Write("系统找不到指定目录下的文件: " + TXTPATH + ProjectID + TXTPOSTFIX + " "); return; } //把Dataset中的数据写入.txt文件中 for (int totaltable = 0; totaltable < ds.Tables.Count; totaltable++) { //统计dataset中当前表的行数 int row = ds.Tables[totaltable].Rows.Count; //统计dataset中当前表的列数 int column = ds.Tables[totaltable].Columns.Count; //用于统计当前表中每列记录中字符数最长的字符串的长度之和 int totalLength = 0; //把dataset中当前表的数据写入.txt文件中 for (int i = 0; i < row; i++) { for (int j = 0; j < column; j++) { textFile.Write(ds.Tables[totaltable].Rows[i][j].ToString()); } textFile.WriteLine(); } textFile.WriteLine(); } //关闭当前的StreamWriter流 textFile.Close(); // System.Web.HttpContext.Current.Response.Write("数据文件已保存到"); } else { // System.Web.HttpContext.Current.Response.Write("No Data"); } } c# 图片 导出问题 在线等! C#中SQL如何拼接字符串 在串口通信发送中,怎样让TestBox中的内容转化为Byte数组发送??? 关于COOKIE的怪问题!~ 怎么动态更改DataGridView中的字段值? 请问我的电脑可以安装ORACLE吗? 学习VC#主要学习.Net Framework,但哪一本.Net Framework 的书最易学易懂? 创建二叉树 紧急!请教一个listView的问题,分不够再加 帮我看一下这段代码吧!!!!!! winform 的ItemCheck事件问题! treeview 拖拽
如果Move名字被占用,估计系统会取别的名字,你看下提示就知道了。
读的话用流应该就OK
比如我的项目叫WindowsFormsApplication1,那么就这样:
richTextBoxCode.Text = WindowsFormsApplication1.Properties.Resources.Move;
byte[] my = new byte[256];
UTF8Encoding Date = new UTF8Encoding(true);
while (fs.Read(my, 0, my.Length) > 0)
{
textBox2.Text = Date.GetString(my);
}
fs.Close();
应该可以吧1!
那个命名空间是由“项目名.Properties”组成的,使用的时候如果项目名一致,前面一半还可以省略掉。
{
string TXTPOSTFIX = ".txt";
if (ds.Tables.Count != 0)
{
string ProjectID = "garbage_list";
//创建一个.txt文件,文件名用项目名
FileInfo file = new FileInfo("" + TXTPATH + ProjectID + TXTPOSTFIX + "");
StreamWriter textFile = null;
try
{
textFile = file.CreateText();
}
catch
{
System.Web.HttpContext.Current.Response.Write("系统找不到指定目录下的文件: " + TXTPATH + ProjectID + TXTPOSTFIX + " ");
return;
}
//把Dataset中的数据写入.txt文件中
for (int totaltable = 0; totaltable < ds.Tables.Count; totaltable++)
{
//统计dataset中当前表的行数
int row = ds.Tables[totaltable].Rows.Count;
//统计dataset中当前表的列数
int column = ds.Tables[totaltable].Columns.Count;
//用于统计当前表中每列记录中字符数最长的字符串的长度之和
int totalLength = 0;
//把dataset中当前表的数据写入.txt文件中
for (int i = 0; i < row; i++)
{
for (int j = 0; j < column; j++)
{
textFile.Write(ds.Tables[totaltable].Rows[i][j].ToString());
}
textFile.WriteLine();
}
textFile.WriteLine(); }
//关闭当前的StreamWriter流
textFile.Close();
// System.Web.HttpContext.Current.Response.Write("数据文件已保存到");
}
else
{
// System.Web.HttpContext.Current.Response.Write("No Data");
}
}