2013-09-11 4 views
0

У меня есть один файл lable, который содержит стикер штрих-кода n его значений, я хочу прочитать этот файл и скопировать этот файл, Итак, я использую функцию ниже. Его работа, но его очень много времени. !! Итак, у вас есть идея, как читать все данные lbl-файла, а не читать данные по битам, которые я делаю. Итак, я могу поднять мое выступление.Как читать все данные из .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(); 

      } 
    } 

ответ

0

Вы можете использовать

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

прочитать все данные.

И напишите этот массив байтов непосредственно в бинарный журнал.

+0

я. Это работает!! Спасибо вам большое. –

0

С помощью @cadsjo Ответ Я получил решение, Теперь моя функция!

используя (BinaryReader б = новый 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]); 

       } 

      } 
     } 
Смежные вопросы