Ошибка при работе с DBF, xbase, cdx #765578


#0 by assest
Есть файл соответствия .DBF и индексы в .cdx. Есть цикл
#1 by assest
На итерации 4110 строка БД_ТС.Следующая; перестает работать, не переходит к следующей строке xBase, цикл становется бесконечным
#2 by vde69
1. в какой строке ошибка 2. описание ошибки
#3 by Ёпрст
Продолжайте наблюдение
#4 by assest
Ошибки нет, просто цикл уходит в бесконечность
#5 by Garykom
а если использвать БД.КоличествоЗаписей и БД.Перейти(НомерЗаписи) ?
#6 by vde69
#7 by assest
Я открыл файл Excel'ем с таблицей вроде все в порядке, строка 4110 ничем не отличается, если пройти отладкой до этой строки данные меняются, т. е. есть переход к следующей строке, а после данные не меняются
#8 by vde69
#9 by assest
Та же ситуация
#10 by assest
Пробовал восстановить файл несколькими программками, все сказали что проблем нет. У Xbase есть метод переиндексировать. он выдает ошибку создания файла, директория без символов, руских букв и пробелов и доступна для записи из 1С
#11 by vde69
тогда что-то в базе не то... для начала попробуй пройтись по файлу CDBF потом можно попробовать пропатчить реестр [HKEY_LOCAL_MACHINESOFTWAREMicrosoftJet4.0EnginesXbase] "DataCodePage"="ANSI" "BDE"=dword:00000002
#12 by assest
Дело точно в файле соответствия или в cdx, так как у меня есть старая копия этих файлов и с ними загрузка проходит
#13 by assest
Что за патч реестра?
#14 by vde69
это патч драйвера, выравнивание границы записи на 2 байта и присвоение кодировки по дефолту... патч позволяет корректно работать со старыми форматами дбф созданных драйверами фокса и 1с
#15 by assest
Прости за наглость, можешь перевести в текст батника?
#16 by Mikeware
сохрани в файле с расширением reg, и пкм...
#17 by assest
Идея БД.Перейти(НомерЗаписи) на строке 4110 сработала, но что это было?
#18 by assest
Сейчас попробую реестр
#19 by assest
Могут быть проблемы при добавлении этих записей?
#20 by vde69
на всякий случай сохрани старое из реестра... на 10 винде не юзал... и еще, изменения вступают в силу после перезагрузки драйвера (гарантировано при перезргрузки компа)
#21 by Garykom
суть вместо цикла с проверкой "на конец файла/последнюю запись" проще использовать позиционирование по номеру записи это надежнее и проще
#22 by assest
Пока Дальше <>Ложь Цикл
#23 by assest
Сделал так
#24 by Garykom
как бы не проще [1C] КолЗап = БД.КоличествоЗаписей; Для НомЗап = 1 По КолЗап Цикл    БД.Перейти(НомЗап);    ... КонецЦикла; [1C]
#25 by Vlad_69
И индекс не открывать, раз он все равно битый. А сортировать уже потом ВременнуюТС.
#26 by assest
Вроде все сработало, но что там было не поянтно
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С