![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Добрый день. Для обработки символьных данных необходим СТЕК со следующими возможностями:
- LIFA (Last In First Out) как базовая возможность - возможность загрузить множество строк в СТЕК (с последующей выборкой верхней строки) - возможность копирования всех строк из СТЕКа - наличие флага, сигнализирующего о том что СТЕК обнулен (все строки выбраны) Вопрос: 1. есть ли в ДЕЛФИ (РАД2010) тип переменой(какой? именно), соотвествующей по выше перечисленным возможностям, или надо лепить какой то свой модуль 2. если нужен отдельный модуль, есть ли примеры? где их искать(УРЛ) Всем спасибо |
#2
|
||||
|
||||
![]() Код:
asm push s; end; asm pop s; end; ![]() А если серьёзно, то я бы использовал массив. Ведь строка в делфи есть указатель на строку, тобишь 4 байта. Можно использовать обычный динамический массив как основу (хранить в нём указатели на строки) и дописать к нему нужные функции. Можно оформить это как класс. Можно вместо массива сделать списком (двойной расход памяти, зато очень динамично и работе как со стеком никакие минусы списка не мешают). Дело недолгое. jmp $ ; Happy End! The Cake Is A Lie. Последний раз редактировалось Bargest, 21.03.2012 в 23:16. |
Этот пользователь сказал Спасибо Bargest за это полезное сообщение: | ||
nixel (21.03.2012)
|
#3
|
|||
|
|||
![]() Цитата:
Можно использовать класс от TList<string> с небольшой доработкой. 1. Функция TList.Add. При этом увеличивает счетчик Count на единицу. Обратится к последнему элементу можно через функцию Last. 2. Функция Add позволяет принимать range - диапазон чего угодно, включая строки. 3. Написать функцию с циклом for i:= 0 (to count - 1) с копированием строк из TList куда-то и последующим очищением TList через метод Clear. 4. Если Count=0, значит лист пустой. в итоге надо дописать всего одну функцию, реализующую пункт 3. |
Этот пользователь сказал Спасибо nixel за это полезное сообщение: | ||
Pcrepair (21.03.2012)
|
#4
|
||||
|
||||
![]() класс TStack
Цитата:
Пишу программы за еду. __________________ |
Этот пользователь сказал Спасибо NumLock за это полезное сообщение: | ||
nixel (22.03.2012)
|