powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Не могу разобрать правильно строку через SUBSTR и AT
7 сообщений из 7, страница 1 из 1
Не могу разобрать правильно строку через SUBSTR и AT
    #34363336
DmitryOrlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно выгрузить в файл данные о сотрудниках.

Код: plaintext
1.
2.
SELECT fam, name, patr, birthdate,  IIF(sex="1", "M", "Ж") as sex, indexcn, LEFT(kodreg, 2 ) as kodreg,  SUBSTR(adr_cntr, AT(',', adr_cntr,  1 ), AT(',', adr_cntr,  2 ) - AT(',', adr_cntr,  1 ))
from salary_cardspri cp INNER JOIN salary_cardssec cs ON cs.tnum = cp.tnum

проблема вот с этим
SUBSTR(adr_cntr, AT(',', adr_cntr, 1), AT(',', adr_cntr, 2) - AT(',', adr_cntr, 1))
выделяет только одну запятую.

Если так, то тоже только одну запятую.
SUBSTR(adr_cntr, AT(',', adr_cntr, 1), 20)

работает только вот такой вариант
SUBSTR(adr_cntr, 2, 20)
но он не подходит, естественно.
Где я не прав?
VFOXPRO 7 SP1

P.S. СРОЧНО ПОМОГИТЕ!
Люди, помогите весне победить зиму!Пожалуйста, жрите снег!Отошли 20 своим друзьям, ведь только объединившись все вместе, мы сожрем его быстрее.
P.S.: Желтый снег не жрите
...
Рейтинг: 0 / 0
Не могу разобрать правильно строку через SUBSTR и AT
    #34363376
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приведи пример adr_cntr и что с ней надо сделать? Нужны запятые или все таки подстроки между запятыми?Какой результат должен быть?
...
Рейтинг: 0 / 0
Не могу разобрать правильно строку через SUBSTR и AT
    #34363418
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вместо AT() попробуй GETWORDNUM()
...
Рейтинг: 0 / 0
Не могу разобрать правильно строку через SUBSTR и AT
    #34363627
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Окружи результат поиска функцией PADR(...,LEN(adr_cntr))

PADR(SubStr(...),LEN(adr_cntr))

Если этого не сделать, то размерность поля будет установлена по размерности первого найденного значения. Если в первой строчке ничего не нашли, то размерность будет C(1). В такой размер уже вообще ничего не влезет.
...
Рейтинг: 0 / 0
Не могу разобрать правильно строку через SUBSTR и AT
    #34371497
DmitryOrlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМОкружи результат поиска функцией PADR(...,LEN(adr_cntr))

PADR(SubStr(...),LEN(adr_cntr))

Если этого не сделать, то размерность поля будет установлена по размерности первого найденного значения. Если в первой строчке ничего не нашли, то размерность будет C(1). В такой размер уже вообще ничего не влезет.
Спасибо, получилось как надо. Действительно, иногда в запросах необходимо принудительно устанавливать размер поля. В моем случае на первый взгляд в этом не было необходимости, однако пришлось так сделать.

Sergey Sizov.Приведи пример adr_cntr и что с ней надо сделать? Нужны запятые или все таки подстроки между запятыми?Какой результат должен быть?
Это выгрузка адреса для какого-то отчета в Excel.
В поле это лежит в одну строку, где значения разделены запятыми:
Москва г,,,,Липецкая ул,54/21,,112
Конечный результат должен попасть в Excel, где это список храниться разделенным на отдельные ячейки. На первый взгляд показалось, что на Фоксе это будет самый быстрый вариант - фактически в один запрос, но вот столкнулся с проблемой с размерностью поля. Хотя если бы я бы внимательнее, я бы быстрее эту проблему решил.

Возникла новая проблема, полученный dbf файл ни в какую не хотел открываться excel-ем. Как сделать выгрузку из Fox-а напрямую в excel разбираться уже было некогда (хотя на будущее обязательно надо будет это сделать, пригодиться) задачу переписал на встроенном языке (xHarbour - так как выгрузку делал из БЭСТ-5) с выгрузкой в Excel напрямую.

Большое спасибо за помощь.
...
Рейтинг: 0 / 0
Не могу разобрать правильно строку через SUBSTR и AT
    #34371555
DmitryOrlovЭто выгрузка адреса для какого-то отчета в Excel.
В поле это лежит в одну строку, где значения разделены запятыми:
Москва г,,,,Липецкая ул,54/21,,112
Конечный результат должен попасть в Excel, где это список храниться разделенным на отдельные ячейки. На первый взгляд показалось, что на Фоксе это будет самый быстрый вариант - фактически в один запрос, но вот столкнулся с проблемой с размерностью поля. Хотя если бы я бы внимательнее, я бы быстрее эту проблему решил.

Возникла новая проблема, полученный dbf файл ни в какую не хотел открываться excel-ем. Как сделать выгрузку из Fox-а напрямую в excel разбираться уже было некогда (хотя на будущее обязательно надо будет это сделать, пригодиться) задачу переписал на встроенном языке (xHarbour - так как выгрузку делал из БЭСТ-5) с выгрузкой в Excel напрямую.

Большое спасибо за помощь.
Ну, Эксель такие файлы понимает... Надо только запятые сменить на точку-с-запятой и дать файлу расширение csv... Однако остается ограничение в размерах - не более 65 535 строк (именно столько влазит на страницу Экселя)...
А заменить запятые на точку-с-запятой можно в простом тектсовом редакторе... И никакого шаманства...
...
Рейтинг: 0 / 0
Не могу разобрать правильно строку через SUBSTR и AT
    #34371624
DmitryOrlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Станислав СНу, Эксель такие файлы понимает... Надо только запятые сменить на точку-с-запятой и дать файлу расширение csv... Однако остается ограничение в размерах - не более 65 535 строк (именно столько влазит на страницу Экселя)...
А заменить запятые на точку-с-запятой можно в простом тектсовом редакторе... И никакого шаманства...
я делаю "select ... from mytable into c:\reestr.dbf"
Если я поменяю расширение на csv, у меня разве формат выгрузки поменяеться с dbf на текстовый?
Сомневаюсь.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Не могу разобрать правильно строку через SUBSTR и AT
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]