Member 13142768 Ответов: 1

Как вычислить количество байтов между двумя строками в файле


привет,,
на самом деле у меня есть один файл, в котором я хочу вычислить данные в байтах, лежащие между двумя строками и так далее до конца файла .может ли кто-нибудь помочь мне разобраться в этой проблеме

Что я уже пробовал:

StartPos = Str.IndexOf("00DE00DE00DE00DE00DE00DE00DE00DE00DE00DE", StartPos);
              
               if(StartPos >= 0)
                {
                   

                   
                   // using (StreamWriter sw = File.AppendText("D:\\veerendra\\myData11111.txt"))
                    //{
                        Console.WriteLine(index + StartPos);
                       
                    //} while (StartPos >= 0) ;

                    StartPos++;
                    Count++;
                }
                
            } while (StartPos >= 0);
            

            Console.Write("File contained " + Count + " occurances");
           
            // for (int i=0; i<= Str.IndexOf("",StartPos);i++)
            {

              

             //   Console.WriteLine(Str.Length);
               
               
               // Console.ReadKey(true);
                int startIndex = Str.IndexOf("00DE00DE00DE00DE00DE00DE00DE00DE00DE00DE");// +start.Length;
               int endIndex = Str.IndexOf("00DE00DE00DE00DE00DE00DE00DE00DE00DE00DE", startIndex);
              // Console.WriteLine( Str.Substring(startIndex, endIndex - startIndex));
               //Console.WriteLine(framecount(StartPo, dest));
                //Console.Write(Str.Length);
                Console.ReadKey(true);
            }

Richard MacCutchan

Вам нужно прочитать данные файла в память (при условии, что он не слишком большой) и найти две строки. Разница между смещением плюс длина первого и смещением второго-это то значение, которое вам нужно.

1 Ответов

Рейтинг:
8

OriginalGriff

Если содержимое вашего файла выглядит так - а я не уверен, что это так, байты обычно не хранятся в виде строк, - то у вас есть это, в значительной степени с незначительной настройкой:

const string startText = "00DE00DE00DE00DE00DE00DE00DE00DE00DE00DE";
const string endText = "00DE00DE00DE00DE00DE00DE00DE00DE00DE00DE";
static void Main(string[] args)
    {
    string Str = "X00DE00DE00DE00DE00DE00DE00DE00DE00DE00DEY00DE00DE00DE00DE00DE00DE00DE00DE00DE00DEZ";
    int startIndex = Str.IndexOf(startText) + startText.Length;
    int endIndex = Str.IndexOf("00DE00DE00DE00DE00DE00DE00DE00DE00DE00DE", startIndex);
    int diff = endIndex - startIndex;
    Console.ReadLine();
    }