Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Загрузка по маске 
:(
    Опции темы
ZBEP
Дата 7.9.2011, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 10.1.2011

Репутация: нет
Всего: нет



Здравствуйте!
Подскажите как можно загрузить/распределить текст вида:
Слова 1;Слова 2;Слова 3;
На три поля без цикла с Pos.
Например, если
Код

Edit1.text:='Слова 1;Слова 2;Слова 3;';

то
Код

Edit2.text:='Слова 1';
Edit3.text:='Слова 2';
Edit4.text:='Слова 3';

Просто думаю использование цикличного поиска не очень рационально.
PM MAIL   Вверх
AndreyIQ
Дата 7.9.2011, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 5.2.2007

Репутация: нет
Всего: 8



Цитата(ZBEP @ 7.9.2011,  14:02)
Здравствуйте!
Подскажите как можно загрузить/распределить текст вида:
Слова 1;Слова 2;Слова 3;
На три поля без цикла с Pos.
Например, если
Код

Edit1.text:='Слова 1;Слова 2;Слова 3;';

то
Код

Edit2.text:='Слова 1';
Edit3.text:='Слова 2';
Edit4.text:='Слова 3';

Просто думаю использование цикличного поиска не очень рационально.

Если без Pos то по символьно сравнивать с шаблоном и разносить по полям.
или Copy, Delete

Это сообщение отредактировал(а) AndreyIQ - 7.9.2011, 14:19
PM MAIL   Вверх
ZBEP
Дата 7.9.2011, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 10.1.2011

Репутация: нет
Всего: нет



AndreyIQ, эти способы мало чем отличаются.
Я думал может есть что-то вроде такого:
Код

Edit1.text:='Слова 1;Слова 2;Слова 3;';
Edit2.text:=PosText(';',1);
Edit3.text:=PosText(';',2);
Edit4.text:=PosText(';',3);

Сейчас функция PosText у меня с помощью Pos ищет ';' и присваивает его заданному компоненту.
Просто подумал, что хоть все и работает, способ реализации не очень, вот и решил спросить, может есть что-то более удобное/правильное.
PM MAIL   Вверх
AndreyIQ
Дата 7.9.2011, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 5.2.2007

Репутация: нет
Всего: 8



Цитата(ZBEP @ 7.9.2011,  14:38)
AndreyIQ, эти способы мало чем отличаются.
Я думал может есть что-то вроде такого:
Код

Edit1.text:='Слова 1;Слова 2;Слова 3;';
Edit2.text:=PosText(';',1);
Edit3.text:=PosText(';',2);
Edit4.text:=PosText(';',3);

Сейчас функция PosText у меня с помощью Pos ищет ';' и присваивает его заданному компоненту.
Просто подумал, что хоть все и работает, способ реализации не очень, вот и решил спросить, может есть что-то более удобное/правильное.

Думаю нет.
Есть извращенный метод, если у Вас они разделены ";", то сохранить текст как csv, открыть с помощью excel, а там уже они будут раскиданы по ячейкам smile  
PM MAIL   Вверх
Данкинг
Дата 7.9.2011, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 9
Всего: 130



Написать функцию для разбивки по разделителям. Кстати, обсуждалось неоднократно уже, поищи по GETWORDNUM.
Цитата(AndreyIQ @  7.9.2011,  15:50 Найти цитируемый пост)
Есть извращенный метод, если у Вас они разделены ";", то сохранить текст как csv, открыть с помощью excel, а там уже они будут раскиданы по ячейкам 

Да, это надо быть определённо запущенным извращенцем. smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
ZBEP
Дата 7.9.2011, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 10.1.2011

Репутация: нет
Всего: нет



AndreyIQ, Знаю, но нужно то у себя раскидать все smile
Ладно, спасибо, буду пользоваться старым методом smile
PM MAIL   Вверх
Данкинг
Дата 7.9.2011, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 9
Всего: 130



Вот хотя бы.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
AndreyIQ
Дата 7.9.2011, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 5.2.2007

Репутация: нет
Всего: 8



Цитата(Данкинг @ 7.9.2011,  14:54)
Вот хотя бы.

Помоему это не совсем то.
PM MAIL   Вверх
ZBEP
Дата 7.9.2011, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 10.1.2011

Репутация: нет
Всего: нет



Еще хотел спросить, каким методом лучше пользоваться, по буквенным сравнением или Pos ?
Или без разницы?
Просто пока база не большая, не понятно, какой из способов быстрее.
Склоняюсь к Pos
PM MAIL   Вверх
AndreyIQ
Дата 7.9.2011, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 5.2.2007

Репутация: нет
Всего: 8



Цитата(ZBEP @ 7.9.2011,  15:04)
Еще хотел спросить, каким методом лучше пользоваться, по буквенным сравнением или Pos ?
Или без разницы?
Просто пока база не большая, не понятно, какой из способов быстрее.
Склоняюсь к Pos

Я думаю лучше Pos.
Мне кажется он примерно так и работает.
PM MAIL   Вверх
superVad
Дата 7.9.2011, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

Репутация: 4
Всего: 15



PM MAIL   Вверх
ZBEP
Дата 7.9.2011, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 10.1.2011

Репутация: нет
Всего: нет



superVad, Во!
Клас, спасибо!
Код

StringList.Delimiter := ';';

То, что нужно, думаю, такой вариант больше подходит, чем Pos и по буквенное сравнение.

Это сообщение отредактировал(а) ZBEP - 7.9.2011, 15:37
PM MAIL   Вверх
sCreator
Дата 7.9.2011, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 84
Регистрация: 20.8.2009
Где: Московская област ь

Репутация: 2
Всего: 5



Только если заглянуть в SetDelimitedText - мы опять возвращаемся в посимвольному сравнению.
PM   Вверх
Данкинг
Дата 7.9.2011, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 9
Всего: 130



Цитата(AndreyIQ @  7.9.2011,  16:00 Найти цитируемый пост)
Помоему это не совсем то. 

А по-моему, это именно то. smile

Добавлено через 1 минуту и 13 секунд
Цитата(ZBEP @  7.9.2011,  16:04 Найти цитируемый пост)
Просто пока база не большая

А, так это даже база. Ну, я программу писал для экспорта из CSV в DBF, где строки парсятся как раз через GETWORDNUM.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
sCreator
Дата 7.9.2011, 18:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 84
Регистрация: 20.8.2009
Где: Московская област ь

Репутация: 2
Всего: 5



ИМХО
Если критична скорость и разделять по определенному символу ( ';' )
лучше взять за основу реализацию StringList.SetDelimitedText
Выкинуть из него лишнее и будет более-менее оптимальный по быстродействию

Работа с указателями всяк будет быстрее copy(slovo,i,1);

Это сообщение отредактировал(а) sCreator - 7.9.2011, 18:38
PM   Вверх
ZBEP
Дата 7.9.2011, 20:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 10.1.2011

Репутация: нет
Всего: нет



Понятно.
Всем, спасибо!

PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0904 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.