Inferno » 31.07.2005 (Вс) 11:25
Могу предложить следующее.
1) Создается 2 массива
- первый содержит смещение строки от начала массива
- второй содержит длину строки
можно использовать коллекции, но лучше написать свой класс, будет быстрее.
2) Для удаления строкового элемента загоняем массив в файл и устанавливаем символ перевода каретки как конец элемента, то есть каждая новая строка это новый элемент массива. Перезаписываем данные в файле таким образом чтобы следующий элемент массива лег на удаляемый и усекаем файл. Пересчитываем начало каждого элемента.
При таком подходе не нужно держать весь массив в памяти- любой элемент можно получить зная его начало и длину.
Аналогично можно реализовать и вставку.
Возможно не самое красивое решение, но вполне имеет право на жизнь.