Уважаемые авторы вопросов! Большая просьба сообщить о результатах решения проблемы на этой странице. Иначе, следящие за обсуждением, возможно имеющие аналогичные проблемы, не получают ясного представления об их решении. А авторы ответов не получают обратной связи. Что можно расценивать, как проявление неуважения к отвечающим от автора вопроса.
06-06-2007 09:30 | Сообщение от автора вопроса
Noskov
Спасибо, но я уже на СКЛ написал парсинг, вроде все работает )
Если кому будет интересно, пишите на почту дам код...
S:='Директор Иванов Иван Иванович';
P:=Pos(' ', S);
if P <> 0 then begin
Dolgnost:=LeftStr(S, P-1);
S:=RightStr(S, length(S) - P);
P:=Pos(' ', S);
if P <> 0 then begin
Familia:=LeftStr(S, P-1);
S:=RightStr(S, length(S) - P);
//... и т.д.
end;
Но со строкой 'Генеральный директор Филиппов А.В' это не пройдет.
04-06-2007 13:44 | Комментарий к предыдущим ответам
Но если сотрудника зовут, например, Усама бен Мухаммед бен Авад бен Ладен (клички «Моджахед», «Абу-Абдалла», «Хадж», «Директор» - распарсировка работать не будет :)
Да и должности тоже интересные бывают (Главный государственный инспектор по пожарному надзору). А про адреса я вообще молчу... :)
Если известно, что данные разделены пробелом, то функции Pos, PosEx.
Но если сотрудника зовут, например, Усама бен Мухаммед бен Авад бен Ладен (клички «Моджахед», «Абу-Абдалла», «Хадж», «Директор» - распарсировка работать не будет :)
Так с очисткой разобрался, осталось разобраться с распарсировкой, пжлст если кто знает дайте пример распарсировки следующего выражения
В таблице есть строка Сотрудник вида:
Директор Иванов Иван Иванович
Можно ли "легким движением руки" встваить ее в эту же таблицу, чтобы получилось следующее (т.е. несколько записей)
Должность Фамилия Имя Отчество
---------- ------- ---- ---------
Директор Иванов Иван Иванович
Кроме этой строки в таблице еще много других строк, которые тоже требуют распарсировки:
Таблица с полями: Название, Сотрудник, Адрес
Все требуют распарсировки...
P.S.
Значения импортированны из екселя, потому про приведение ко 2нф не пишете...
Теперь возникло 2 новых вопроса:
1)Мне нужно, чтобы в случае если поля уже заполнены, таже самая информация не вводилась, как это сделать?
2)Необходимо теперь распарсить строки, т.е. у меня в одной ячейке хранится 2 значения через отделенные в
1 случае пробелом
2 случае частицей от
3 случае дефисом
Нужно разбить эту ячейку на 2
ADOQuery1->Active = true;
Я запускаю при открытии формы, все данные из екселя выгружаются в DBGrid нормально, теперь мне необходимо из подключенного Экселя выгрузить данные на сервер в созданную таблицу...
Если убираю строку
ADOQuery2->Active = true;
Выдает следующее ADOQuery2 Parametr @org not found
Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter. Функция может не работать в некоторых версиях броузеров.