Неперемещаемые динамические массивы

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Re: Неперемещаемые динамические массивы

Сообщение zub » 31.07.2013 21:30:13

Код: Выделить всё
  Strings: array of PChar; // массив с указателями на начало строки в хранилище
  Storage: array of Byte; // хранилище строк

В данном случае думаю логично завести массив хранилищ и не перераспределять память в хранилише, а добавлять новое. Т.к. при доступе к данным через Strings пофиг лежат строки в одном или в разных Storage: array of Byte или вообще каждая строка болтается в своей персонально выделенной области.
zub
долгожитель
 
Сообщения: 2887
Зарегистрирован: 14.11.2005 23:51:26

Re: Неперемещаемые динамические массивы

Сообщение SeZuka » 31.07.2013 21:54:12

В принципе тоже вариант. Но это уже точно похоже на менеджер памяти.
SeZuka
постоялец
 
Сообщения: 209
Зарегистрирован: 05.09.2012 14:58:05

Re: Неперемещаемые динамические массивы

Сообщение Alex2013 » 21.08.2013 18:06:11

Я во избежание подобных кренделей давно использую TStringList.
Код: Выделить всё
Var SL:TStringList.;
S:String;
Begin
Sl:=TStringList.Create;
Sl.Add( ' Проба силы..' );
..
S:=SL[0];
sl.free;
end.

Единственный недостаток пустая строка в конце списка при SL.Text:=S; но он там где надо легко фиксится ... Зато запись в файл и чтение из файла проводятся одной командой
Alex2013
долгожитель
 
Сообщения: 3143
Зарегистрирован: 03.04.2013 11:59:44

Re: Неперемещаемые динамические массивы

Сообщение SeZuka » 22.08.2013 05:06:21

Alex2013 писал(а):Я во избежание подобных кренделей давно использую TStringList.

На TStringList была самая первая реализация. В следующей реализации был отказ от TStringList и переход на массив PChar`ов с собственным алгоритмом сортировки, что позволило намного увеличить быстродействие.
SeZuka
постоялец
 
Сообщения: 209
Зарегистрирован: 05.09.2012 14:58:05

Пред.

Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

Рейтинг@Mail.ru