![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
ZBEP |
|
||||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 10.1.2011 Репутация: нет Всего: нет |
Здравствуйте!
Подскажите как можно загрузить/распределить текст вида: Слова 1;Слова 2;Слова 3; На три поля без цикла с Pos. Например, если
то
Просто думаю использование цикличного поиска не очень рационально. |
||||
|
|||||
AndreyIQ |
|
||||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 5.2.2007 Репутация: нет Всего: 8 |
Если без Pos то по символьно сравнивать с шаблоном и разносить по полям. или Copy, Delete Это сообщение отредактировал(а) AndreyIQ - 7.9.2011, 14:19 |
||||||
|
|||||||
ZBEP |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 10.1.2011 Репутация: нет Всего: нет |
AndreyIQ, эти способы мало чем отличаются.
Я думал может есть что-то вроде такого:
Сейчас функция PosText у меня с помощью Pos ищет ';' и присваивает его заданному компоненту. Просто подумал, что хоть все и работает, способ реализации не очень, вот и решил спросить, может есть что-то более удобное/правильное. |
|||
|
||||
AndreyIQ |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 5.2.2007 Репутация: нет Всего: 8 |
Думаю нет. Есть извращенный метод, если у Вас они разделены ";", то сохранить текст как csv, открыть с помощью excel, а там уже они будут раскиданы по ячейкам ![]() |
||||
|
|||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 9 Всего: 130 |
Написать функцию для разбивки по разделителям. Кстати, обсуждалось неоднократно уже, поищи по GETWORDNUM.
Да, это надо быть определённо запущенным извращенцем. ![]() -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
ZBEP |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 10.1.2011 Репутация: нет Всего: нет |
AndreyIQ, Знаю, но нужно то у себя раскидать все
![]() Ладно, спасибо, буду пользоваться старым методом ![]() |
|||
|
||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 9 Всего: 130 |
Вот хотя бы.
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
AndreyIQ |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 5.2.2007 Репутация: нет Всего: 8 |
||||
|
||||
ZBEP |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 10.1.2011 Репутация: нет Всего: нет |
Еще хотел спросить, каким методом лучше пользоваться, по буквенным сравнением или Pos ?
Или без разницы? Просто пока база не большая, не понятно, какой из способов быстрее. Склоняюсь к Pos |
|||
|
||||
AndreyIQ |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 5.2.2007 Репутация: нет Всего: 8 |
Я думаю лучше Pos. Мне кажется он примерно так и работает. |
|||
|
||||
superVad |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 735 Регистрация: 6.4.2006 Где: Черкассы, Украина Репутация: 4 Всего: 15 |
||||
|
||||
ZBEP |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 10.1.2011 Репутация: нет Всего: нет |
superVad, Во!
Клас, спасибо!
То, что нужно, думаю, такой вариант больше подходит, чем Pos и по буквенное сравнение. Это сообщение отредактировал(а) ZBEP - 7.9.2011, 15:37 |
|||
|
||||
sCreator |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 84 Регистрация: 20.8.2009 Где: Московская област ь Репутация: 2 Всего: 5 |
Только если заглянуть в SetDelimitedText - мы опять возвращаемся в посимвольному сравнению.
|
|||
|
||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 9 Всего: 130 |
А по-моему, это именно то. ![]() Добавлено через 1 минуту и 13 секунд А, так это даже база. Ну, я программу писал для экспорта из CSV в DBF, где строки парсятся как раз через GETWORDNUM. -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
sCreator |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 84 Регистрация: 20.8.2009 Где: Московская област ь Репутация: 2 Всего: 5 |
ИМХО
Если критична скорость и разделять по определенному символу ( ';' ) лучше взять за основу реализацию StringList.SetDelimitedText Выкинуть из него лишнее и будет более-менее оптимальный по быстродействию Работа с указателями всяк будет быстрее copy(slovo,i,1); Это сообщение отредактировал(а) sCreator - 7.9.2011, 18:38 |
|||
|
||||
ZBEP |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 10.1.2011 Репутация: нет Всего: нет |
Понятно.
Всем, спасибо! |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |