Имя: Пароль:
1C
 
как добавить поле(колонку) в уже открытый dbf-файл?
0 altaykniga
 
19.02.15
20:59
Добрый вечер, уважаемые!

Открываю dbf-файл
следующая()
извлекаю данные из строки
затем нужно добавить колонку и внести туда сумму, полученную в 1с
как это сделать?
Как добавить колонки в уже открытый файл dbf?
пытаюсь добавить колонки перед циклом, но ошибка "перед выполнением операции нужно закрыть базу"
что я делаю не так?

    УСЗНДБФ =  "C:\Обмен1с\uszn.dbf";
    усзн = Новый XBase;
    
    усзн.ОткрытьФайл(УСЗНДБФ,,Истина);
    усзн.Первая();
    усзн.поля.Добавить("Norma","N", 15, 2);
1 ДенисЧ
 
19.02.15
21:00
"перед выполнением операции нужно закрыть базу"

Before executing an operation you have to close your database
2 altaykniga
 
19.02.15
21:02
(1) так если я ее закрою, как я добавлю колонку в уже существующий dbf файл?
3 altaykniga
 
19.02.15
21:23
предлагают такой вариант:

СоздатьНовый файл с нужной структурой.
Построчно перекопировать записи из старого файла.
старый файл убить, новый - переименовать в старый.

вопрос: а если структура файла заранее неизвестна? Ну т.е. я не знаю, какие будут колонки в открываемом файле... Мне просто нужно добавить к существующим колонкам новые и заполнить их значениями
4 altaykniga
 
19.02.15
21:23
может можно как-нибудь перенести структуру (названия колонок) из существующего файла в новый файл, а уже потом его заполнять?
5 ДенисЧ
 
19.02.15
21:27
Никак, покупатель на СП нашёлся?
На скидки не надейся...
6 altaykniga
 
20.02.15
10:20
спасибо за участие, пришлось читать СП бесплатно ))
7 D_E_S_131
 
20.02.15
10:31
(4) Что значит "как-нибудь"? У объекта XBase есть возможность получения коллекции колонок.
8 altaykniga
 
20.02.15
14:10
(7) Да, так и сделал, спасибо. Просто в файле от 2 до 4 тыс.строк, не хотелось создавать новый файл и туда писать значения полей всех строк )) Но, как люди подсказывают, по-другому никак ))