Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > Pascal > Строка более 255 символов


Автор: bizzz 16.03.07, 06:42
Привет,
есть задача по обработке текста, специфика задачи требует анализ текста по предложениям.
В общем случае предложение может быть больше 255 символов и таким образом использовать string для храниния анализируемого предложения нельзя (или я не знаю как это сделать ;) ).
Так вот, инструментарий анализа предложений готов и ждет только целого предложения на вход :)
Подскажите пожалуйста как можно решить задачу хранения предложения, если оно больше 255 символов.
P.S. У меня есть предложение: заносить предложение посимвольно в динамический массив символов, но, во-первых,
инструментарий обработки предложений (в немалом количесте) заточен под входной string и не хотелось бы перелопачивать много кода, а во-вторых, я не очень хорошо знаю теорию динамических данных - не займет ли обработка большого текста неоправданно большое количество памяти?

Автор: best_lamer 16.03.07, 06:55
А мож стек или очередь спасет?

Автор: bizzz 16.03.07, 07:03
Цитата best_lamer @
А мож стек или очередь спасет?

Я, честно говоря, не знаю как можно избежать "перелопачивания" кода, если переделывать под очереди или стеки,
и еще мне кажется, что, по сравнению с тем же динамическим массивом символов, стеки и очереди создают больше проблем (задач), связанных с их особенностями (структурой). Возможно я чего-то не знаю

Автор: volvo877 16.03.07, 07:25
Цитата bizzz @
по сравнению с тем же динамическим массивом символов, стеки и очереди создают больше проблем (задач), связанных с их особенностями (структурой)

Ну, это спорное утверждение... Все зависит во-первых, от задачи, а во-вторых - от того, насколько ты владеешь языком программирования вообще и работой с ДСД в частности, так что давай не будем обобщать...

Цитата bizzz @
во-первых, инструментарий обработки предложений (в немалом количесте) заточен под входной string и не хотелось бы перелопачивать много кода
Значит, ты ошибся в проектировании, и код-таки придется перелопачивать... Опять же, количество того, что придется переделать, зависит от продуманности структуры программы...

Посмотри в сторону PChar ...

Цитата bizzz @
не займет ли обработка большого текста неоправданно большое количество памяти?

1) насколько большой текст? (согласись, есть разница между 500 байтами, и скажем, 30Кбайт)
1) обработка - понятие растяжимое... Говоришь загадками - в ответ тоже получаешь загадочное молчание...

Автор: best_lamer 16.03.07, 07:28
Цитата bizzz @
Я, честно говоря, не знаю как можно избежать "перелопачивания" кода, если переделывать под очереди или стеки

bizzz Тебе нужно
Цитата bizzz @
решить задачу хранения предложения, если оно больше 255 символов

??? :huh: Или чего то серьезнее? Посмотри на пример. И потом зачем тебе в твоей здаче динамический массив? Не он конечно удобен...

Автор: volvo877 16.03.07, 07:33
Цитата best_lamer @
он конечно удобен...

Особенно если учесть, что в стандартном 16-битном Паскале его вообще НЕТ... Тогда его удобство только увеличивается :D

Автор: bizzz 16.03.07, 07:41
volvo877, я не распространяюсь насчет обработки, потому что там действительно много всего и к задаче хранения предложения оно (обобщенно) относится тем, что на вход требует строку.
Цитата volvo877 @
Ну, это спорное утверждение...

Конечно, конечно, я не в общем говорил, а в данном случае.
Цитата volvo877 @
Посмотри в сторону PChar ...

Цитата volvo877 @
Значит, ты ошибся в проектировании, и код-таки придется перелопачивать

Я сейчас понял в чем соль.
Я поленился переделывать недальновидно сделанный код, поэтому захотел найти готовое решение (или идею) здесь.
Прошу прощения, я сейчас понял, что и использование динамического массива символов, и использование Pchar в данной задаче мне подходят, просто я искал более легкий путь.
Еще раз извините за то, что хорошенько подумал после того, как написал сюда.

Добавлено
best_lamer и volvo877, спасибо вам за помощь

Автор: best_lamer 16.03.07, 07:44
Цитата volvo877 @
Особенно если учесть, что в стандартном 16-битном Паскале его вообще НЕТ.

Ну свой заделать в общем то реально... Помню что у меня гдето в загашниках даже валялась распечатка еще с институтских лет (лет пять уже...) как раз реализация массива занимающего любой доступный обьем памяти под досом. ;)

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)