Используя C #, мне нужно прочитать упакованный двоичный файл, созданный с использованием FORTRAN.Файл хранится в формате «Неформатированный последовательный», как описано здесь (примерно на полпути вниз по странице в разделе «Неформатированные последовательные файлы»):
http://www.tacc.utexas.edu/services/userguides/intel8/fc/f_ug1/pggfmsp.htm
Как вы можетекак видно из URL, файл организован в «чанки» длиной 130 байт или меньше и включает 2 байта длины (вставленных компилятором FORTRAN), окружающих каждый чанк.
Итак, мне нужно найти эффективный способпарсит фактическую полезную нагрузку файла от форматирования, вставленного компилятором.
Как только я извлеку фактическую полезную нагрузку из файла, мне нужно будет проанализировать ее по различным типам данных.Это будет следующее упражнение.
Мои первые мысли состоят в том, чтобы сжать весь файл в байтовый массив, используя File.ReadAllBytes
.Затем просто перебирайте байты, пропуская форматирование и передавая фактические данные во второй байтовый массив.
В конце концов, этот второй байтовый массив должен содержать фактическое содержимое файла за вычетом всего форматирования, которое затем мне нужно будет вернуть, чтобы получить то, что мне нужно.
Как яЯ довольно плохо знаком с C #, я подумал, что может быть лучший и более приемлемый способ решения этой проблемы.
Кроме того, если это полезно, эти файлы могут быть довольно большими (скажем, 30 МБ), хотя большинство из них будет намногоменьше ...