使用文件

时间:2009-11-11 23:00:40

标签: c# file-io windows-mobile-5.0

我需要创建一个将读取文件的应用程序,如下所示:

Font = "Courier New"
Size = "10"
Style = "Bold"

正如您所看到的,我将使用它来设置TextBox的一些属性,但是我将存储这些引号中的每个内容并将它们存储在一些变量上(textFont,{ {1}},textSize)。

我认为我可以使用此语法打开包含文件的流:

textStyle

问题是:

  • 当声明StreamReader时,它将读取应用程序目录中的文件?(只是确认)
  • 如何只读取引号内的内容并将每个引脚存储在一个字符串中?

我认为,Windows Mobile和Windows中的文件I / O是相等的。最诚挚的问候

3 个答案:

答案 0 :(得分:3)

这样的事情怎么样:

foreach(string s in FileLines) {
  string[] data = s.Split(new[] { '=' });
  // property is in data[0]
  // value is in data[1]
}

您创建的是一个简单的CSV文件

CSV表示字符分隔值...

<强>更新

好的,好像你正在尝试复制而不是理解算法,所以我将在这里创建一个新的

StreamReader reader = new StreamReader("confs.txt");
while(reader.peek >= 0) {
   string l = reader.ReadLine();
   string[] data = l.Split(new[] { '=' });
   // property is in data[0]
   // value is in data[1]
}
reader.Close();
reader.Dispose();

答案 1 :(得分:2)

最好声明完整路径,或使用以下语法:

System.IO.Path.Combine((new System.Uri(Assembly.GetEntryAssembly().CodeBase)).AbsolutePath, "confs.txt");

我认为要解析它,你可以更轻松地将文件保存为Xml并将其加载到XmlDocument中。或者更好的是,放弃这个想法并将时间信息存储在app.config文件中。它非常简单,如果需要,你还可以在记事本中编辑它而无需重新编译。

(这会使答案的前半部分变得没有实际意义)

答案 2 :(得分:2)

1:只要你不改变当前目录,是的。虽然

,但还有更多彻底方式来获取应用目录

2:解析这样一个字符串的任何数字方法; string.SplitRegex等;纯粹作为一个例子,我将(ab)使用DbConnectionStringBuilder

using (StreamReader reader = File.OpenText("data.txt")) {
    string line;
    DbConnectionStringBuilder db = new DbConnectionStringBuilder();
    while ((line = reader.ReadLine()) != null) {
        db.ConnectionString = line;
        foreach (string key in db.Keys) {
            Console.WriteLine(key);
            Console.WriteLine(db[key]);
        }
    }
}
在windows-mobile中可能不存在

编辑 DbConnectionStringBuilder;可能只是在Split=或使用Regex;它归结为完全格式。