Разбор выходных файлов FORTRAN с использованием Java - PullRequest
3 голосов
/ 29 октября 2010

Существуют ли какие-либо инструменты Java с открытым исходным кодом для анализа выходных данных FORTRAN?Я хотел бы иметь возможность написать что-то вроде

Format format = new Format("(1x, 2(F10.3,I3,' XY ',F7.3))");
String s = " -12345.897    XY 123.456-12345.897*** XY 123.456";
Result result = format.parse(s);   

Обратите внимание, что это специально FORTRAN.Обратите внимание на забавные вещи, такие как объединенные поля, переполнения, пробелы = 0 и т. Д. Есть так много ошибок, которые я не хочу заново открывать для себя!

КОММЕНТАРИЙ.Я не понимаю, почему это неправильный путь.Формат - это краткий способ генерации кода чтения.Альтернативой может быть жесткое кодирование считывателя для каждого формата.Если у меня есть файл с - скажем, 100 различными выходами FORMAT, то мне нужно 100 кусков кода.Используя подход iChemLabs, я пишу:

List<Object> fields = FortranFormat.read(s, format);

и получаю обратно Double Integer String Double Double Integer String Double

ОБНОВЛЕНИЕ: я протестировал iChemLabs на разумном количестве вещей.С пробелами он возвращает нулевые целые и двойные числа.С * это исключение (не без оснований).Он может управлять несколькими строками

fields = FortranFormat.read("   1\n    2", "(I4/I4)");

возвращает 2 целых числа (1 и 2)

ОБНОВЛЕНИЕ: код iChemLabs специально позволяет вводить пустые данные (но не звездочки):

public void setReturnZeroForBlanks(boolean returnZeroForBlanks)

    Set whether zeros are returned for blanks.

    Parameters:
        returnZeroForBlanks - the return zero for blanks

1 Ответ

3 голосов
/ 29 октября 2010

Это, кажется, делает это (и вывод, и ввод). Последнее обновление 1998 года!

Еще один здесь - выглядит немного более отполированным? от iChemLabs

...