Здравствуйте, falcon8, Вы писали:
F>и как это применить если файл содержит
F>несколько строк(человеческих) ~150000
фиксированной длинннны
F>причём строки типа 1 может следовать только за строкой 0 ну и т.д.
F>Я сейчас тупо считываю построчно switch по типу,делаю класс и создаю коллекцию
F>из которой потом выбираю данные по строкам типа 0 и распечатываю в заказанном виде
F>всё работает
F>но как-то хочется поинтересней вот и захотел через структуры что нить оптимизировать
Не очень я понял, в чём состоит задача.
Верно ли то, что у тебя есть полиморфная коллекция (с разнотипными элементами — тип выбирается при считывании очередной строки),
и ты фильтруешь эту коллекцию, распечатывая только заданный тип?
Мне кажется, что считывать весь файл целиком — только ради этой задачи — смысла нет.
Прочитал очередную строку, проанализировал, при желании распечатал. Перешёл к следующей строке файла.
Максимум что потребуется, это машина состояний (конечный автомат).
Никакой коллекции и практически никакого полиморфизма.
Здесь есть аналогия с SAX- и DOM-парсерами. Зачем делать DOM, если SAX-а достаточно.
Ну а что касается структур... Конечно, считывать запись фиксированной ширины прямо в POD-структуру удобнее, чем каждое поле по отдельности, либо в символьный буфер с последующим его расковыриванием.
... << RSDN@Home 1.2.0 alpha rev. 655>>