【问题标题】:How to read all data from .lbl file如何从 .lbl 文件中读取所有数据
【发布时间】:2013-09-11 13:12:59
【问题描述】:

我有一个标签文件,其中包含条形码标签及其值,我想读取该文件并复制该文件, 所以,我正在使用以下功能。它的工作,但它非常耗时..!! 那么,您是否知道如何读取 lbl 文件的所有数据,而不是像我正在做的那样逐位读取数据。 所以,我可以提高我的表现。

    public void storeLbl(string path)
    {

            lblData = ""; 


            using (BinaryReader b = new BinaryReader(File.Open(path, FileMode.Open)))
            {

                int pos = 0;


                int length = (int)b.BaseStream.Length;
                while (pos < length)
                {

                    int v = b.ReadInt32();
                    if (lblData.ToString() == "")
                    {
                        lblData = v.ToString();
                    }
                    else
                    {
                        lblData = lblData + "," + v.ToString(); // Store Lbl Data in database


                    }

                    pos += sizeof(int);

                }
                b.Close(); 
    }   
   }

在数据库值的帮助下复制 .lbl 文件的第二个函数 //从数据库中获取lblData值

public void getLbl()
{

            string[] store = lblData .Split(',');

            int length = store.Length;
            storeval = new int[length];
            for (int i = 0; i < length; i++)
            {
                storeval[i] = Convert.ToInt32(store[i]);

            }


            using (BinaryWriter w = new BinaryWriter(NewPath, FileMode.Create)))// Create Copy of .lbl file
            {
                for (int i = 0; i < length; i++)
                {
                    w.Write(storeval[i]);

                    Console.WriteLine(storeval[i]);

                }
                w.Close();  

            }
    }

【问题讨论】:

    标签: c# file-handling


    【解决方案1】:

    你可以使用

    byte[] allData = binaryreader1.ReadBytes(int.MaxValue); 
    

    读取所有数据。

    然后将该字节数组直接写入二进制写入器。

    【讨论】:

      【解决方案2】:

      在@cadsjo Answer 的帮助下,我得到了解决方案, 现在我的功能是!!

      使用 (BinaryReader b = new BinaryReader(File.Open("原始文件路径", FileMode.Open))) {

                  int length = (int)b.BaseStream.Length;
                  byte[] allData = b.ReadBytes(length);
      
                  using (BinaryWriter w = new BinaryWriter(File.Open("New File Path", FileMode.Create)))
                  {
      
                      for (int i = 0; i < length; i++)
                      {
                          w.Write(allData[i]);
      
                      }
      
                  }
              }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-17
        • 2018-02-23
        • 1970-01-01
        • 2018-05-24
        • 1970-01-01
        相关资源
        最近更新 更多