Страница 1 из 1
Обработка пакетом файлов
Добавлено: 03 Июль 2020, 11:29
gopstop2007
Как выполнить одинаковые действия над многими файлами, FILE_A01, FILE_A02, ..., FILE_A20 в их копии только в другом драйвере FILE_B01, FILE_B02, ..., FILE_B20?
Код: Выделить всё
LOOP
DO OpenFiles
STREAM(FILE_B01)
IF RECORDS(FILE_A01)
SET(FILE_A01)
Loop while Access:FILE_A01.Next() = Level:Benign
CLEAR(FB01:RECORD)
FB01:RECORD = FA01:RECORD
APPEND(FILE_B01)
IF ERRORCODE()
Message('Ошибка: '&ERRORCODE() &' : '& ERRORFILE(),'Ошибка')
BREAK
END
END
ELSE
BREAK
END
BUILD(FILE_B01)
FLUSH(FILE_B01)
END
Никогда не приходилось с таким сталкиваться, прошу помощи

Спасибо за внимание
Обработка пакетом файлов
Добавлено: 03 Июль 2020, 13:56
gopstop2007
вот что у меня получилось, поправьте если что то не так, спасибо
Процедура OneFillToTwo((FileManager pFM,FileManager pFM2)
Код: Выделить всё
pFM.Open; pFM.UseFile
pFM2.Open; pFM2.UseFile
IF RECORDS(pFM.File)
SET(pFM.File)
Loop while pFM.Next() = Level:Benign
CLEAR(pFM2.File) ! CLEAR(my:RECORD)
pFm2.File{PROP:Record} = pFm.File{PROP:Record} ! pFM:RECORD = pFM:RECORD
pFM2.Insert()
IF ERRORCODE()
Message('Ошибка: '&ERRORCODE() &' : '& ERRORFILE(),'Ошибка')
RETURN 0
END
END
ELSE
RETURN 0
END
pFM.close()
pFM2.close()
Обработка пакетом файлов
Добавлено: 03 Июль 2020, 15:08
kreator
Маленькая ремарка. Давно делал подобное. Была проблема при присвоении целой записью с NULL'ами. Пришлось явно делать setnull.
Обработка пакетом файлов
Добавлено: 03 Июль 2020, 16:32
porutchik
gopstop2007 писал(а): 03 Июль 2020, 11:29
IF NOT RECORDS(FILE_A01)
BREAK
END
STREAM(FILE_B01)
IF RECORDS(FILE_A01)
зачем второй IF RECORDS ?
Обработка пакетом файлов
Добавлено: 03 Июль 2020, 16:40
gopstop2007
porutchik писал(а): 03 Июль 2020, 16:32
зачем второй IF RECORDS ?
кусок готового кода выдрал, между ними еще кое что было из третьего

Обработка пакетом файлов
Добавлено: 05 Июль 2020, 17:15
gopstop2007
gopstop2007 писал(а): 03 Июль 2020, 13:56
Код: Выделить всё
CLEAR(pFM2.File) ! аналог CLEAR(my2:RECORD)
pFm2.File{PROP:Record} = pFm.File{PROP:Record} ! аналог my2:RECORD = my1:RECORD
Ошибся в данном коде, нужна помощь как подменить
CLEAR(my2:RECORD) и
my2:RECORD = my1:RECORD подскажите как правильно?
Заранее благодарю.
Обработка пакетом файлов
Добавлено: 05 Июль 2020, 21:23
kreator
Может вот так:
Код: Выделить всё
rec1 &= pFm.File{PROP:Record}
rec2 &= pFm2.File{PROP:Record}
rec1 = rec2 или rec1 :=: rec2
Объявление:
Обработка пакетом файлов
Добавлено: 05 Июль 2020, 22:42
gopstop2007
kreator писал(а): 05 Июль 2020, 21:23
Может вот так:
Код: Выделить всё
rec1 &= pFm.File{PROP:Record}
rec2 &= pFm2.File{PROP:Record}
rec1 = rec2 или rec1 :=: rec2
так делал rec1 :=: rec2 не работало, спасибо kreator так заработало rec1 = rec2

Обработка пакетом файлов
Добавлено: 06 Июль 2020, 2:02
Admin
Очень странно.
Обязано работать независимо от того группа это или ссылка на группу.