| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Загрузка по маске |
| Автор: ZBEP 7.9.2011, 14:02 | ||||
| Здравствуйте! Подскажите как можно загрузить/распределить текст вида: Слова 1;Слова 2;Слова 3; На три поля без цикла с Pos. Например, если
то
Просто думаю использование цикличного поиска не очень рационально. |
| Автор: AndreyIQ 7.9.2011, 14:18 | ||||||
Если без Pos то по символьно сравнивать с шаблоном и разносить по полям. или Copy, Delete |
| Автор: ZBEP 7.9.2011, 14:38 | ||
| AndreyIQ, эти способы мало чем отличаются. Я думал может есть что-то вроде такого:
Сейчас функция PosText у меня с помощью Pos ищет ';' и присваивает его заданному компоненту. Просто подумал, что хоть все и работает, способ реализации не очень, вот и решил спросить, может есть что-то более удобное/правильное. |
| Автор: AndreyIQ 7.9.2011, 14:50 | ||||
Думаю нет. Есть извращенный метод, если у Вас они разделены ";", то сохранить текст как csv, открыть с помощью excel, а там уже они будут раскиданы по ячейкам |
| Автор: ZBEP 7.9.2011, 14:52 |
| AndreyIQ, Знаю, но нужно то у себя раскидать все Ладно, спасибо, буду пользоваться старым методом |
| Автор: Данкинг 7.9.2011, 14:54 |
| http://forum.vingrad.ru/index.php?showtopic=320768&view=findpost&p=2287028 хотя бы. |
| Автор: AndreyIQ 7.9.2011, 15:00 | ||
Помоему это не совсем то. |
| Автор: ZBEP 7.9.2011, 15:04 |
| Еще хотел спросить, каким методом лучше пользоваться, по буквенным сравнением или Pos ? Или без разницы? Просто пока база не большая, не понятно, какой из способов быстрее. Склоняюсь к Pos |
| Автор: AndreyIQ 7.9.2011, 15:11 | ||
Я думаю лучше Pos. Мне кажется он примерно так и работает. |
| Автор: superVad 7.9.2011, 15:12 |
| http://forum.vingrad.ru/index.php?showtopic=325289&view=findpost&p=2319419. |
| Автор: ZBEP 7.9.2011, 15:20 | ||
| superVad, Во! Клас, спасибо!
То, что нужно, думаю, такой вариант больше подходит, чем Pos и по буквенное сравнение. |
| Автор: sCreator 7.9.2011, 17:01 |
| Только если заглянуть в SetDelimitedText - мы опять возвращаемся в посимвольному сравнению. |
| Автор: Данкинг 7.9.2011, 17:07 |
А по-моему, это именно то. Добавлено через 1 минуту и 13 секунд А, так это даже база. Ну, я программу писал для экспорта из CSV в DBF, где строки парсятся как раз через GETWORDNUM. |
| Автор: sCreator 7.9.2011, 18:38 |
| ИМХО Если критична скорость и разделять по определенному символу ( ';' ) лучше взять за основу реализацию StringList.SetDelimitedText Выкинуть из него лишнее и будет более-менее оптимальный по быстродействию Работа с указателями всяк будет быстрее copy(slovo,i,1); |
| Автор: ZBEP 7.9.2011, 20:44 |
| Понятно. Всем, спасибо! |