我需要创建一个将读取文件的应用程序,如下所示:
Font = "Courier New"
Size = "10"
Style = "Bold"
正如您所看到的,我将使用它来设置TextBox的一些属性,但是我将存储这些引号中的每个内容并将它们存储在一些变量上(textFont
,{ {1}},textSize
)。
我认为我可以使用此语法打开包含文件的流:
textStyle
问题是:
我认为,Windows Mobile和Windows中的文件I / O是相等的。最诚挚的问候
答案 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.Split
,Regex
等;纯粹作为一个例子,我将(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
;它归结为完全格式。