Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Разбиение строки в FPD 2.5  [new]
paule
Member

Откуда: Братск
Сообщений: 236
Подскажите пожалуйста.
У меня есть поле в таблице FIO.
в этом поле записано имя, отчество и фамилия через пробел.

как мне перенести данные в другую таблицу , но только отдельно в поле F - фамилию, в поле I - имя и O - отчество ?
Другими словами как из одной строки получить три?

Заранее спасибо.
9 ноя 04, 04:46    [1090159]     Ответить | Цитировать Сообщить модератору
 Re: Разбиение строки в FPD 2.5  [new]
SAM-FoxPro
Member

Откуда: Когалым
Сообщений: 97
Я использовал функцию SUBSTR.
Определяешь позицию первого пробела, затем второго.
9 ноя 04, 07:09    [1090190]     Ответить | Цитировать Сообщить модератору
 Re: Разбиение строки в FPD 2.5  [new]
Hel!Riser
Member

Откуда: Нижний Новгород
Сообщений: 972
SET LIBRARY TO fpath.plb
FOR nCnt=1 TO Words(cFIO)
  ?WordNum(cFIO, nCnt)
ENDFOR
9 ноя 04, 08:31    [1090258]     Ответить | Цитировать Сообщить модератору
 Re: Разбиение строки в FPD 2.5  [new]
leaf
Member [заблокирован]

Откуда: Ростов-на-Дону --> Москва
Сообщений: 2661
может так???
select t1
scan
append blank in t2
w=alltrim(t1.fio)
if !empty(w)
replace fam with substr(w,1,iif(at(w,' ')#0,at(w,' '),len(w)) in t2
w=iif(at(w,' ')=0,'',substr(w,at(w,' ')+1,len(w)-at(w,' '))
if !empty(w)
replace nam with substr(w,1,iif(at(w,' ')#0,at(w,' '),len(w)) in t2
replace ot with iif(at(w,' ')=0,'',substr(w,at(w,' ')+1,len(w)-at(w,' '))
in t2
endif
endif
endscan
9 ноя 04, 09:06    [1090312]     Ответить | Цитировать Сообщить модератору
 Re: Разбиение строки в FPD 2.5  [new]
leaf
Member [заблокирован]

Откуда: Ростов-на-Дону --> Москва
Сообщений: 2661
может так???
select t1
scan
append blank in t2
w=alltrim(t1.fio)
if !empty(w)
replace fam with substr(w,1,iif(at(w,' ')#0,at(w,' '),len(w)) in t2
w=alltrim(iif(at(w,' ')=0,'',substr(w,at(w,' ')+1,len(w)-at(w,' ')))
if !empty(w)
replace nam with substr(w,1,iif(at(w,' ')#0,at(w,' '),len(w)) in t2
replace ot with iif(at(w,' ')=0,'',substr(w,at(w,' ')+1,len(w)-at(w,' '))
in t2
endif
endif
endscan
9 ноя 04, 09:08    [1090316]     Ответить | Цитировать Сообщить модератору
 Re: Разбиение строки в FPD 2.5  [new]
XAndy
Member

Откуда: Киев
Сообщений: 326
См. функцию getwordnum()
9 ноя 04, 11:22    [1090746]     Ответить | Цитировать Сообщить модератору
 Re: Разбиение строки в FPD 2.5  [new]
Hel!Riser
Member

Откуда: Нижний Новгород
Сообщений: 972
XAndy
См. функцию getwordnum()

FPD такое не знало
9 ноя 04, 11:29    [1090764]     Ответить | Цитировать Сообщить модератору
 Re: Разбиение строки в FPD 2.5  [new]
XAndy
Member

Откуда: Киев
Сообщений: 326
О, точно - FPD. Прозрел :)
Ну тогда написать самому аналогичную функцию. Все равно понадобится.
9 ноя 04, 12:44    [1091117]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить