如何通过C#中指定的位置从文本文件中读取条形码
本文关键字:文本 文件 位置 读取 条形码 何通过 | 更新日期: 2023-09-27 18:06:46
0000016011071693266104*014482*3 15301 45 VETRO NOVA BLUVETRO NOVA蓝色扁平拉伸115428815150010050 05420 000033 0003
0000072011076993266101*014687*4 15300 45 VETRO NOVA BLUVETRO NOVA蓝色扁平拉伸115428815160010030 05430 000032 0007
我有一个文本文件,其中包括许多逐行的条形码,正如你在上面的字符串格式中看到的,是公司代码,其他显示其他内容。
那么,我如何在C#中逐行、逐字符地阅读这些文本呢?
要逐行阅读,可以使用StreamReader
——例如,请参阅MSDN上的http://msdn.microsoft.com/en-us/library/db5x7c0d.aspx
另一种选择是:
string[] AllLines = File.ReadAllLines (@"C:'MyFile.txt");
这会给你一个字符串数组中的所有行,你可以使用它们——这会使用更多的内存,但速度更快。。。例如,请参见http://msdn.microsoft.com/en-us/library/s2tte0y1.aspx
当字符串中有一行时,您可以拆分该行,例如:
string[] MyFields = AllLines[1].Split(null); // since your fields seem to be separated by whitespace
结果是,您在一个数组中拥有该行的部分,并且可以访问例如具有MyFields[1]
的行中的第二个字段-请参阅http://msdn.microsoft.com/en-us/library/b873y76a.aspx
编辑-根据注释另一个选项:
如果你确切地知道你的字段的位置和长度,你可以这样做:
string MyIdentity = AllLines[1].SubString(1, 5);
有关MSDN参考,请参阅http://msdn.microsoft.com/en-us/library/aka44szs.aspx
您使用专用于文件和流的Microsoft库来打开文件,并使用Readline((。
然后使用专门用于解析的Microsoft库来解析这些行。
您可以使用Microsoft库创建一个正则表达式来检测条形码(而不是borcod…(
然后丢弃任何与正则表达式不匹配的内容。
然后进行编译和调试(可以使用Mono(。瞧,你有一个C#程序可以解决你的问题。
注意:你绝对不需要"一个字符接一个字符"。Microsoft库和解析将更容易满足您的简单需求。
如果你想要的只是逐行、逐字符地阅读,那么这是一个可能的解决方案:
var lines = File.ReadLines(@"pathtotextfile.txt");
foreach (var line in lines)
{
foreach (var character in line)
{
char individualCharacter = character;
}
}
如果你需要知道你在哪一行和哪一个字符上;您可以使用for
循环:
var lines = File.ReadAllLines(@"pathtotextfile.txt");
for (var i = 0; i < lines.Length; i++)
{
var line = lines[i];
for(var j = 0; j < line.Length; j++)
{
var character = line[j];
}
}
或者在LINQ:中使用SelectMany
var lines = File.ReadLines(@"pathtotextfile.txt");
foreach (char individualCharacter in lines.SelectMany(line => line))
{
}
现在,就我的观点而言,"逐行"answers"逐个字符"对我来说似乎是一个艰难的选择。如果你能告诉我们条形码中的每一位信息到底是什么,我们可以帮助你这样提取。