Существуют ли какие-либо инструменты 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