Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.06.2009, 19:53   #1
Slava
 
Аватар для Slava
 
Регистрация: 07.12.2006
Сообщений: 9
Вопрос Разбивка строки в Delphi

Из текстового файла загружаются строки вида:

#текст##текст# и т.п.

можно ли текст (без символов #) извлечь в матрицу по маске, не используя функций pos(),copy,delete() подскажите пожалуйста

Последний раз редактировалось Slava; 29.06.2009 в 20:31.
Slava вне форума Ответить с цитированием
Старый 29.06.2009, 21:04   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

еще есть регулярные выражения(не использую)

а чем pos(),copy,delete() не устраивают?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 29.06.2009, 22:23   #3
Slava
 
Аватар для Slava
 
Регистрация: 07.12.2006
Сообщений: 9
По умолчанию

перечисленные функци не устраивают из-за времени выполнения (если разбирать в цикле каждую строку)

Большое спасибо за помощь
Slava вне форума Ответить с цитированием
Старый 30.06.2009, 07:45   #4
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Я думаю использование ассемблера будет быстрее . Как правило все остальные варианты будут медленней чем pos. Ну можно использовать альтернативные библиотеки, где проведена оптимизация, но это экономия на спичках.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 30.06.2009, 07:56   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
еще есть регулярные выражения
В Делфи??? Если не секрет - пример пожалуйста.
Цитата:
из-за времени выполнения
Но они на ассемблерных вставках. Они достаточно быстры.
Впрочем можно просто пройтись по строке одним циклом, что побыстрее будет.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.06.2009, 08:01   #6
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

В Делфи есть регулярные выражения. Реализуются через специальный модуль (в инете можно найти, я лично находил).
А вообще то Slava, пользуйся поиском. Только, что ввел в гугл "разбивка строки в Delphi" и вот, что нашол здесь.

Последний раз редактировалось profi; 30.06.2009 в 08:23.
profi вне форума Ответить с цитированием
Старый 30.06.2009, 08:18   #7
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Да, такая реализация регулярных выражений будет нисколько не быстрее частного случая с Pos - создание класса, цикл с copy (который по условию задания применять нельзя ) + вероятность заблудиться в дебрях теории (если торопишься и слегка плаваешь в этом вопросе). Ну уж нет, лучше старого доброго Pos ничего пока в голову не приходит .

Можно конечно попробовать выделять место в динамической памяти самостоятельно, но по сути тоже pos, copy и пр. и не факт, что быстрее.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 30.06.2009, 09:05   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Господи, да данная задачи элементарно решается через банальный проход по строке с копированием найденных кусков куда там TC надо. и pos будет не сильно медленнее (если правильно алгоритм его использования набросать, конечно).
Регулярные выражения в Дельфи реализуются сторонним компонентом (например, TRegExpr - Freeware Регулярные Выражения для Delphi (Regular Expressions))
Но вот с ними всё точно будет гораздо медленее... Это как пригласить хорошего художника стены красить, а потом удивляться, что он делал дольше, чем обычный маляр...
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Анализ строки(Delphi) Cannibal Помощь студентам 2 27.11.2008 14:17
Разбивка текста Vinslova Microsoft Office Excel 3 30.10.2008 12:49
Delphi. Строки. inmate Помощь студентам 2 19.05.2008 18:14
#Delphi Строки forumu Помощь студентам 3 24.12.2007 23:31
Строки в Delphi. Wise Помощь студентам 9 03.12.2007 17:58