powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Простейшая задача, раньше делал, но забыл, выдача из DBF файла
25 сообщений из 26, страница 1 из 2
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
    #39261487
p672
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеется в наличии DBF файл всего с ОДНИМ полем, примерно такой структуры, с несколькими записями упорядоченными(отсортированными):

imja
----
саша
саша
саша
иван
иван
иван
иван
федор
федор
федор
ольга
ольга
ольга

Стоит задача: выдать все одинаковые строки(записи) в цикле из этого DBF файла в файлы EXCEL
Это будет небольшая программа около 10 строк примерно такой структуры с циклом:

do while !eof()
...
export to &имя all for имя=file.imja
...
enddo

Раньше я точно такое делал, но забыл, не могу вспомнить, нужен пример.
Заранее благодарен.
...
Рейтинг: 0 / 0
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
    #39262593
psj69
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
p672,

SET TALK OFF
SET SAFETY OFF
SET ENGINEBEHAVIOR 70
SELECT imja,COUNT(*) as cnt FROM table1 GROUP BY 1 ORDER BY 1 INTO CURSOR tmp_name
SELECT TMP_NAME
GO TOP

SCAN
SCATTER MEMVAR
WAIT WINDOW imja +STR(m.cnt) NOWAIT
SELECT TABLE1
ON ERROR WAIT WINDOW "ERROR EXPORT : "+imja timeout 3
EXPORT TO ALLTRIM(m.imja)+'.XLS' TYPE XLS FOR ALLTRIM(imja)==ALLTRIM(m.imja)
ON ERROR
SELECT TMP_NAME
ENDSCAN

WAIT clear
CLOSE TABLES

Вот только создвать таблицы с одним полем не солидно.
Нужен еще хотя бы идентификатор.
...
Рейтинг: 0 / 0
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
    #39263577
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
psj69SELECT imja,COUNT(*) as cnt FROM table1 GROUP BY 1 ORDER BY 1 INTO CURSOR tmp_nameа distinct чем плох?
...
Рейтинг: 0 / 0
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
    #39265030
psj69
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,
Не плох.Но мне хотелось посмотреть сколько по каждому имени записей.
...
Рейтинг: 0 / 0
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
    #39265614
p672
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
psj69

Всё получилось как надо, я удовлетворён, БЛАГОДАРЮ, вы очень помогли.
Ваш код написан не зря, востребован и пригодится еще.



Примерно подобную программу можно сделать еще меньшим объёмом , я делал точно , но забыл как.
Помню только что через конструкцию DO WHILE !EOF() ENDDO и намного проще.
Там совсем маленькая программа получается.
...
Рейтинг: 0 / 0
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
    #39265623
p672
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На самом деле в DBF файле несколько полей но по существу программой используется только одно поле.
...
Рейтинг: 0 / 0
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
    #39265649
p672
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я собирался примерно вот в таком виде программу сделать, но где-то есть ошибка:

fin - таблица
zakaz - поле

текст программы (НЕ работает) что-то в этом роде:

USE fin IN 0
GO top
a=fin.zakaz
b=0
DO WHILE !EOF()
IF b=0
EXPORT TO &a XLS ALL FOR a=fin.zakaz
b=1
endif
skip
IF a#fin.zakaz
a=fin.zakaz
b=0
ENDIF
ENDDO
...
Рейтинг: 0 / 0
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
    #39266001
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
select distinct zakaz from fin into cursor qwe
select qwe
scan
  lcname=qwe.zakaz
  select fin
  EXPORT TO (lcname) XLS ALL FOR zakaz=lcname
  select qwe
endscan

безо всяких а, бэ, ифов, дуев и гоутопов
...
Рейтинг: 0 / 0
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
    #39266012
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если таблица отсортирована, то так
Код: sql
1.
2.
3.
4.
5.
6.
7.
USE fin IN 0
lnPrev=-1 && Заведомо несуществующее значение
sele fin
scan for lnPrev!=fin.zakaz
     lnPrev=fin.zakaz
     EXPORT TO (lnPrev) XLS ALL WHILE lnPrev=fin.zakaz
endscan
...
Рейтинг: 0 / 0
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
    #39266883
p672
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо большое за примеры.
Циклом scan endscan не пользовался, но теперь буду знать как проще такие задачи решать.

Тяжело мне, запутался в трёх соснах, голова не варит последнее время, хотя на VFP давно пишу.
Большое спасибо всем.

И если есть еще варианты как решить такую задачу то приму и буду рад.
...
Рейтинг: 0 / 0
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
    #39268419
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не понял - а зачем тут цикл?
Запросом всё гораздо быстрее и проще.
...
Рейтинг: 0 / 0
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
    #39269376
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
982183,

ну давай, создай в запросе энное количество йоксель-файлов...
...
Рейтинг: 0 / 0
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
    #39270226
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подразумевалось, что запросом в данном случае гораздо удобнее выбрать нужные строки, чем циклом.
...
Рейтинг: 0 / 0
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
    #39270301
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
982183,

а файлы, файлы-то как потом создавать?
...
Рейтинг: 0 / 0
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
    #39271523
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EXPORT TO
...
Рейтинг: 0 / 0
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
    #39271553
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
982183EXPORT TOв запросе?
...
Рейтинг: 0 / 0
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
    #39271591
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
после запроса
...
Рейтинг: 0 / 0
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
    #39271683
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
982183после запроса
а теперь смотрим сюда 19357714
а потом сюда 19373430
и задаёмся вопросом - зачем давать туманный совет, если уже есть рабочий код?
...
Рейтинг: 0 / 0
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
    #39272120
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Именно об этом и говорю.
От SCAN надо отходить.
...
Рейтинг: 0 / 0
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
    #39272137
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
982183От SCAN надо отходитьТогда опять встаёт вопрос - как будем создавать энное количество эксель-файлов? Что "запросом" их не создать, вроде уже выяснили.
...
Рейтинг: 0 / 0
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
    #39272432
tanglir982183От SCAN надо отходитьТогда опять встаёт вопрос - как будем создавать энное количество эксель-файлов? Что "запросом" их не создать, вроде уже выяснили.В общем-то, если вы не в курсе, фокс поддерживает в списке выбора команды Select sql юзерские функции, в которых, как ни странно, можно и файлики создавать. :)
...
Рейтинг: 0 / 0
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
    #39272747
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пускай он поддерживает всё что угодно.
Но если человек хочет дальше развиваться,
переходить на другие платформы,
то SQL - это более удобная/стандартная/масштабируемая вещь
...
Рейтинг: 0 / 0
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
    #39272774
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
правильный проходящий.,

я в курсе, но такое знатное извращение мне в голову просто не приходило :)
...
Рейтинг: 0 / 0
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
    #39273470
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извращение конечно чудное, но иногда необходимое.
Но крайне редко.
...
Рейтинг: 0 / 0
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
    #39274229
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сглазили ....
Встала задача со SCAN.....
Надо не создавать табличку, а менять данные в существующих...
Карма.
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Простейшая задача, раньше делал, но забыл, выдача из DBF файла
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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