|
55 / 18 / 19
Регистрация: 11.11.2014
Сообщений: 463
|
|
Поиск в dbf файле30.07.2018, 14:12. Показов 23077. Ответов 13
Метки нет (Все метки)
Добрый день. Можно ли в 1с7 реализовать поиск в dbf файле по 2 полям? Желательно не перебором всех данных
0
|
|
| 30.07.2018, 14:12 | |
|
Ответы с готовыми решениями:
13
Максимальная длина записи в файле Dbf Проверить на наличие колонки в DBF файле Поиск по DBF 1C77 |
|
Модератор
|
|
| 30.07.2018, 14:22 | |
|
http://1czone.ru/code/12-primer-dbf.html
только непонятно - а как не перебором? вам же надо его из дбф загрузить куда-то в 1с. то есть все строчки прочитать. и записать.
0
|
|
|
55 / 18 / 19
Регистрация: 11.11.2014
Сообщений: 463
|
|
| 30.07.2018, 14:35 [ТС] | |
|
Я выгружаю данные в файл. Суть в том, что мне надо найти есть ли такая запись в файле(по тем самым двум полям) или нет, если она в файле есть, то мне нужно в третье поле записать данные, если нет, то полностью создать новую запись. А если я каждый раз буду заново перебирать, это получится очень долго.
Добавлено через 4 минуты Попробую так объяснить: Выгружаю данные из 1с7. Выгружается всё хорошо, но есть записи в которых код и дата одинаковые(но разные другие поля) вот их мне и нужно объединить в одну запись. Например: Код___Дата_______Реквизит1___Реквизит2 1_____200101_____"Что-то" 1_____200101________________"Тут что-то" Должна получиться одна запись : 1 200101 "Что-то" "Тут что-то"
0
|
|
|
434 / 305 / 92
Регистрация: 28.05.2014
Сообщений: 1,246
|
|
| 30.07.2018, 14:47 | |
|
Загрузить файл себе в таблицу значений, потом Через НайтиСтроки() искать твои повторные строки, если их нет, создать, потом тз обратно в файл загнать.
0
|
|
|
212 / 185 / 32
Регистрация: 24.10.2011
Сообщений: 762
|
|
| 30.07.2018, 16:07 | |
|
Через XBase по НайтиПоКлючу().
ПС Ээээ парень, ты не поиск ищешь, а объединение записей, тут только самому писать код.
1
|
|
|
55 / 18 / 19
Регистрация: 11.11.2014
Сообщений: 463
|
|
| 30.07.2018, 16:11 [ТС] | |
|
Так чтобы объединить нужно сначала найти что объединять.
Вообще объединение я сделал в 8ке, я просто немного зашёл в тупик и не знаю что дальше делать. В 8ку загрузил так как я написал выше, один код одна дата, Но дело в том, что не всегда есть дата, код и оба заполненных реквизита, а для этого случая нужно найти запись сделанную раньше и где этот реквизит заполнен и взять значение оттуда. Поэтому я и решил с 7ке выгружать уже всё готовое, но и там путаница
0
|
|
|
212 / 185 / 32
Регистрация: 24.10.2011
Сообщений: 762
|
|
| 30.07.2018, 16:12 | |
|
0
|
|
|
434 / 305 / 92
Регистрация: 28.05.2014
Сообщений: 1,246
|
||
| 30.07.2018, 16:13 | ||
![]() только кодом отбирать, объединять, лишнее удалять. Как и написали выше
0
|
||
|
55 / 18 / 19
Регистрация: 11.11.2014
Сообщений: 463
|
|
| 30.07.2018, 16:16 [ТС] | |
|
Вот именно такой вариант меня и не устраивает. Ибо для 50к+ записей искать похожую перебором очень долго,а я пытаюсь более-менее оптимизированную программу написать
0
|
|
|
434 / 305 / 92
Регистрация: 28.05.2014
Сообщений: 1,246
|
|||
| 30.07.2018, 16:39 | |||
|
Александр321321,
Загрузить в ТЗ (Пакет 0); Код и дату сгруппировать, а номер строки максимум (пакет 1); Выбрать те строки из пакета 0, которых нет в (пакете 1) - повторные записи (пакет 2) теперь у нас есть ключи повторных объектов (код и Дата) - тут может быть 2,3,4 и т.д элемента с одинаковым кодом и Датой, но разными номерами строк, поэтому это дело ещё раз группируем аналогично пакету 1 и обходим его уже в цикле И через так мы обработаем все повторные строки Добавлено через 1 минуту при этом в цикле не будем обходить всю таблицу бесчисленное количество раз
0
|
|||
|
Модератор
|
||||||
| 01.08.2018, 13:10 | ||||||
|
Александр321321, не мучайся...
Не по теме: на источник дать ссылку не могу, форум не разрешает
1
|
||||||
|
434 / 305 / 92
Регистрация: 28.05.2014
Сообщений: 1,246
|
||
| 01.08.2018, 14:36 | ||
|
Левым соединением по полю DB2 соединяем? Как должна отработать конструкция? Добавлено через 1 минуту Код___Дата_______Реквизит1___Реквизит2 1_____200101_____"Что-то" 1_____200101________________"Тут что-то" 2_____200101________________"Значение 1" 3_____200101______"Значение 2___"Значение 1"
0
|
||
|
212 / 185 / 32
Регистрация: 24.10.2011
Сообщений: 762
|
||
| 01.08.2018, 14:55 | ||
|
Важно, что написав нужный запрос автор выдернет всю нужную информацию одной операцией без циклов и прочей лабуды.
0
|
||
|
So much heresy...
24 / 16 / 11
Регистрация: 30.07.2018
Сообщений: 114
|
||
| 01.08.2018, 14:59 | ||
|
P.S. пока писал, уже ответили.
0
|
||
| 01.08.2018, 14:59 | |
|
Помогаю со студенческими работами здесь
14
Создание целочисленного поля в dbf файле Замена значений колонки в dbf файле Как определить тип полей в DBF-файле? Поиск в dbf Неправильная кодировка при чтении memo-поля в файле dbf Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|