Имя: Пароль:
1C
 
ФайлDBF в XBase загружает нулями
🠗Ø (Волшебник 27.08.2024 11:55)
,
0 newtech
 
naïve
26.08.24
22:34
Подскажите, загружаю DBF в ТЗ, при загрузке файла в XBase,
те поля, у которых Тип Число было пустым, загружает нулем.
как решить эту проблему?

ФайлDBF = Новый XBase;   ФайлDBF.ОткрытьФайл(ПутьКФайлуDBF,,Истина);
1 Волшебник
 
26.08.24
22:35
Ну реши как-нибудь
2 newtech
 
naïve
26.08.24
23:02
(1) Спасибо, за дельный совет.
3 Aleksey
 
27.08.24
00:07
(2) Для типа число чем пусто от 0 отличается?
А так можешь писать при выгрузки если пусто пиши заведомо нереальное число, например -99999. И при загрузки анализируй, если у тебя -999999, тогда "тут должно быть пусто"
4 newtech
 
naïve
27.08.24
00:53
(3) Есть исходный DBF с полями, некоторые поля заполнены, некоторые пустые. В полях с Типом Число, есть со значением 0 и Пусто.

Я DBF загоняю в ТЗ, затем ТЗ в во ВременноеХранилище , в процессе обработки Достаю из ВХ, читаю, Изменяю, Дополняю., затем опять сохраняю в DBF, все прекрасно работало, пока в исходных данных не появились пустые Поля с Тип Число.
5 H A D G E H O G s
 
27.08.24
00:57
(4) Когда из dbf в ТЗ загоняешь, меняй пустые поля с тип Число на ноль, в чем проблема?
6 newtech
 
naïve
27.08.24
01:17
(5) Проблема в том, что Если в исходном DBF есть ПустоеПоле или 0 Тип число, и в процессе обработки, не понадобилось его изменить, то вернуть мне нужно DBF так же с ПустымПолем или 0. Но возникла проблема , когда использую ФайлDBF = Новый XBase;   ФайлDBF.ОткрытьФайл(ПутьКФайлуDBF,,Истина); Все пустые поля приводятся к 0.
Понятно что можно  решить разными способами данную проблему. Хотелось бы рассмотреть варианты.
7 H A D G E H O G s
 
27.08.24
01:33
(6) Скинь пример файла
8 newtech
 
naïve
27.08.24
02:10
9 RVN
 
27.08.24
07:04
(4) у тебя в ТЗ при создании это поле случаем не типизировано как число?
10 AAA
 
27.08.24
07:14
На мой взгляд данная задача является некорректной. Если в исходном файле числовые значения неопределены, то этот файл является кривоватым,так как нет такого числа. И поэтому после обработки сохранять пустые значения это как то не очень. Разумнее поправить исходный файл, чтобы в нем не было пустых значений. Зачем обрабатывать кривые файлы, да еще с сохранением кривизны? И автор не пояснил зачем надо сохранять эти пустые значений, для кого это важно и почему?
11 AAA
 
27.08.24
07:18
Если пустое значение используется как признак необработанной
ячейки, то можно решить проблему иначе, записывая туда заведомо неиспользуемое значение, что то типа -(минус) 99999999999
12 АгентБезопасной Нацио
 
27.08.24
08:53
(0) все в полном соответствии со стандартом - "пустое" значение типа нумерик = 0. Исходный файл стандарту не соответствует
13 Гость из Мариуполя
 
гуру
27.08.24
09:40
Мне интересно (чисто из любопытства) - а чем, какой программой ты умудрился создать dbf файл, у которого те поля, у которых тип число, были пустыми?
14 Смотрящий
 
27.08.24
09:51
(13) Обычно это что то специфическое и трудно заменяемое.
15 Волшебник
 
27.08.24
09:53
чушь какая-то
16 newtech
 
naïve
27.08.24
11:37
(13) (14) Ну приблизительно так
Функция СформироватьСтруктуруПолей()
    ТаблицаПолей = "";
    ТаблицаПолей = Новый Массив;
ДобавитьПолеВТаблицуПолей(ТаблицаПолей,"ttn","S",50) ;
ДобавитьПолеВТаблицуПолей(ТаблицаПолей,"ttn_date","D", 10 ) ;        
... далее

Функция ВыгрузитьНаСервереDBF(ТекДокумент,СтруктураПолей)
    ТЧ = Новый ТаблицаЗначений;
    ТЧ.Очистить();
    Для Х = 0 По СтруктураПолей.Количество()-1 Цикл
        Поле = СтруктураПолей[Х];
        Попытка
            ТЧ.Колонки.Добавить(Поле.Имя);
Загружаем в ТЧ нужные данные и формируем DBF, далее этот файл отправляется в разные базы(последовательно корректируется) и уже идет на обработку (поменять формат файла, не имеется возможности)
17 Волшебник
 
27.08.24
11:41
Извращенцы
18 newtech
 
naïve
27.08.24
11:55
(17) возможно..
И все же какой метод подойдет, при загрузке DBF определять поле, с Тип Число пустое оно или имеет значение 0
19 Волшебник
 
27.08.24
11:56
Со своим DBF ебитесь сами.

пустое число, но не ноль...

пиздец какой-то...