如何使用vs2005将.txt文件读入字符串windows 6 classic/windows CE?
Posted
技术标签:
【中文标题】如何使用vs2005将.txt文件读入字符串windows 6 classic/windows CE?【英文标题】:how to read .txt file into string windows 6 classic / windows CE, using vs2005? 【发布时间】:2022-01-13 21:25:05 【问题描述】:我正在为具有 Windows Embedded 手持设备 6.5 的手持设备创建应用程序,我坚持阅读文本文件的内容并加载到字符串中。该文件以 3 列(条形码、desc、价格)为制表符分隔。代码将在表单加载时执行,我在 Windows 6 经典模拟器上发布的 vb2005 上使用 c# 编写了以下内容,但流读取器始终为空。 我已经写了以下请任何建议,我感谢您的帮助!
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
private void Form1_Load(object sender, EventArgs e)
string fileloc = "fileexample.txt";
StreamReader sr = new StreamReader(fileloc);
string s = sr.ReadToEnd();
【问题讨论】:
问:你试过File.ReadAllText()吗? 当我输入文件时。我没有阅读所有文本选项 【参考方案1】:好的:
How can I read all text when ReadAllText is unavailable?
compact-framework 版本没有实现它。 .net 版本, 然而,简单地实现如下:
public static class File public static String ReadAllText(String path) using (var sr = new StreamReader(path, Encoding.UTF8)) return sr.ReadToEnd();
注意 StreamReader 的第二个参数:Encoding.UTF8。
另见:
Compact Framework: A problem with reading a file
Windows CE 没有“当前目录”的概念。操作系统 传递“list.txt”时尝试打开\list.txt。你总是必须 指定文件的完整路径。 ...
在我使用的完整框架中:
string dir = Path.GetDirectory(Assembly.GetExecutingAssembly().Location); string filename = Path.Combine(dir, "list.txt"); StreamReader str = new StreamReader(filename);
强烈建议:
-
指定编码(例如 UTF8)
在此方法中设置断点并单步执行您的代码。
【讨论】:
谢谢你当我编译我得到以下错误: 错误 2 找不到类型或命名空间名称“var”(您是否缺少 using 指令或程序集引用?) C:\Users\ali\Documents\Visual Studio 2005\Projects\ price_check_c\price_check_c\Form1.cs 19 20 price_check_c "var" 是在 C# 3.0 中引入的关键字:docs.microsoft.com/en-us/dotnet/csharp/language-reference/…。你的版本显然太旧了。只需将StreamReader
替换为“var”即可。另外:只要您发现回复有帮助,请“投票”和“接受”(“检查”图标)。
我有一个在 CE OS 5.2 上运行的摩托罗拉 3190,我正在使用 VS2005..dot net compact v2..iam 知道 var 和 File.* 在此版本中并非全部可用,但我正在搜索另一种我找不到的方法,我只需要将 .txt 文件的内容导入到字符串或 c# 中的数组中
编译器版本(例如 MSVS 2005)不如您的目标平台相关。您的目标不支持“var” - 解决方法是明确给出类型(StreamReader)。你的目标应该支持System.IO.StreamReader。如果您只替换“var”,上面的代码应该 可以工作。如果没有,请发回具体消息。【参考方案2】:
尝试使用
File.ReadAllText("Full File Path");
并使用完整的文件路径,例如 C:\fileexample.txt
【讨论】:
【参考方案3】:string FilePath = "/"; //Root
string FileName = "MyFile.txt";
string MyString = "";
StreamReader sr = new StreamReader(File.OpenRead(FilePath + FileName), Encoding.Default, true);
while (!sr.EndOfStream)
MyString += sr.ReadLine();
sr.Dispose();
sr.Close();
【讨论】:
【参考方案4】:经过长时间的搜索,我找到了我想要的东西。我想分享,这样其他人就不会像我一样受苦:
private void Form1_Load(object sender, EventArgs e)
string dir = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase);
string filename = Path.Combine(dir, "alisyd.txt");
StreamReader sr = new StreamReader(filename);
string s = sr.ReadToEnd();
【讨论】:
您的回复基本上就是我一开始所说的:1)您需要指定一个完全限定的路径,2)您需要 sr.ReadToEnd();以上是关于如何使用vs2005将.txt文件读入字符串windows 6 classic/windows CE?的主要内容,如果未能解决你的问题,请参考以下文章
如何在保持换行符的同时将 .txt 文件读入单个 Java 字符串?