如何通过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#中逐行、逐字符地阅读这些文本呢?

如何通过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"逐个字符"对我来说似乎是一个艰难的选择。如果你能告诉我们条形码中的每一位信息到底是什么,我们可以帮助你这样提取。