Страница 1 из 1

Нужно поменять Owner Name в файлах tps

Добавлено: 06 Сентябрь 2024, 22:15
kreator
Много файлов, да и ещё у клиентов. Есть какая-то идея упростить работу? Или писать тупой конвертер?

Нужно поменять Owner Name в файлах tps

Добавлено: 12 Сентябрь 2024, 12:52
Губин Игорь
Тупо писать...

Нужно поменять Owner Name в файлах tps

Добавлено: 12 Сентябрь 2024, 13:23
finsoftrz
Можно тупой шаблон...

Нужно поменять Owner Name в файлах tps

Добавлено: 12 Сентябрь 2024, 13:36
Губин Игорь
finsoftrz писал(а): 12 Сентябрь 2024, 13:23 Можно тупой шаблон...
Шаблон дольше писать, если файлов меньше полусотни. Пример: конвертер, который генерит словарь, полон глюков.

Нужно поменять Owner Name в файлах tps

Добавлено: 12 Сентябрь 2024, 13:45
finsoftrz
От опыта зависит. Пишешь конвертер на один файл, затем превращаешь его в шаблон.

Нужно поменять Owner Name в файлах tps

Добавлено: 12 Сентябрь 2024, 13:54
Губин Игорь
finsoftrz писал(а): 12 Сентябрь 2024, 13:45 От опыта зависит. Пишешь конвертер на один файл, затем превращаешь его в шаблон.
"Какой ты умный, это что-то!" :dizzy:

Там же надо проходить по всем переменным и генерить в зависимости от типа... :=: или = не во всех случаях помогает. :facepalm:

Не помню, кажется глюк с присвоением GROUP в рантайме исправили, но не проверял.

Нужно поменять Owner Name в файлах tps

Добавлено: 12 Сентябрь 2024, 13:56
Губин Игорь
Как вариант, можно попробовать через WHO/WHAT и т.п., но надо смотреть.

Нужно поменять Owner Name в файлах tps

Добавлено: 12 Сентябрь 2024, 14:06
finsoftrz
Он же овнера хотел поменять только. Задаёшь в промптах старого и нового, натравливаешь на словарь. Структура не меняется. Если с изменением структуры, то могут быть нюансы, если какие заумные вещи использовать. Если только базовые типы данных, то вообще никаких проблем. У меня лет 20 подобной автоматический конвертор работает, включая подъем структуры на несколько версий вперед.

Нужно поменять Owner Name в файлах tps

Добавлено: 12 Сентябрь 2024, 14:10
Губин Игорь
finsoftrz писал(а): 12 Сентябрь 2024, 14:06 Задаёшь в промптах старого и нового, натравливаешь на словарь.
:dizzy: Я написал, что для нормального конвертера, универсального, надо пройтись по куче условий и отладить.

Потому и проще, если файлов меньше пары десятков - пройтись ручками.

Нужно поменять Owner Name в файлах tps

Добавлено: 13 Сентябрь 2024, 12:25
gopstop2007
Пользуюсь такой конструкцией для создании копии любого файла

Код: Выделить всё

   Fields.Init
   
   sourceRec &= pFm_.File{PROP:Record}
   targetRec &= pFm2_.File{PROP:Record}
   LOOP F = 1 TO 999
      IF WHO(targetRec,F) = '' THEN BREAK END
      Fields.AddPair(WHAT(targetRec,F),WHAT(sourceRec,F))
   END
!    LOCK(pFM2_.File)
    STREAM(pFM2_.File)
    SET(pFM_.File)
    Loop while pFM_.Next() = Level:Benign     
        CLEAR(targetRec)
        Fields.AssignRightToLeft()

!        ADD(pFM2_.File)
        IF ~pFM2_.Insert() = Level:Benign
             Message('Ошибка: '& ERRORCODE() &' : '& ERRORFILE(),'Ошибка')
             BREAK
        END
    END
    FLUSH(pFM2_.File)
!    UNLOCK(pFM2_.File)
   Fields.Kill

Нужно поменять Owner Name в файлах tps

Добавлено: 14 Сентябрь 2024, 13:39
kreator
gopstop2007, а можно поподробнее про конструкцию для копии файла. Файлов, которые нужно конвертить, порядка 300. Хотелось бы автоматизации. Шаблон писать пока не представляю как. Хотел на основе стандартного механизма для одного файла размножить на остальные.

Нужно поменять Owner Name в файлах tps

Добавлено: 14 Сентябрь 2024, 15:47
Губин Игорь
kreator писал(а): 14 Сентябрь 2024, 13:39 gopstop2007, а можно поподробнее про конструкцию для копии файла. Файлов, которые нужно конвертить, порядка 300. Хотелось бы автоматизации. Шаблон писать пока не представляю как. Хотел на основе стандартного механизма для одного файла размножить на остальные.
Самое сложное - правильно обрабатывать "сложные" поля. В принципе, всё можно сделать через примитивное присвоение, кроме BLOB

Нужно поменять Owner Name в файлах tps

Добавлено: 14 Сентябрь 2024, 17:39
gopstop2007
kreator писал(а): 14 Сентябрь 2024, 13:39 gopstop2007, а можно поподробнее про конструкцию для копии файла. Файлов, которые нужно конвертить, порядка 300. Хотелось бы автоматизации. Шаблон писать пока не представляю как. Хотел на основе стандартного механизма для одного файла размножить на остальные.
Наваял простой пример из своего проекта, упростил (там использовались файлы odbc, memory, tps), оставил только tps.
Просьба к админу бросьте в FAQ.
Пример на C10 ABC
Губин Игорь писал(а): 14 Сентябрь 2024, 15:47
kreator писал(а): 14 Сентябрь 2024, 13:39 gopstop2007, а можно поподробнее про конструкцию для копии файла. Файлов, которые нужно конвертить, порядка 300. Хотелось бы автоматизации. Шаблон писать пока не представляю как. Хотел на основе стандартного механизма для одного файла размножить на остальные.
Самое сложное - правильно обрабатывать "сложные" поля. В принципе, всё можно сделать через примитивное присвоение, кроме BLOB
С простым присвоением были проблемы, а с BLOB не пробовал )

Нужно поменять Owner Name в файлах tps

Добавлено: 14 Сентябрь 2024, 18:43
Губин Игорь
да, виноват. Не работал с ABC и не знаком с их библиотеками классов (тут FieldPairsClass).

НО!
The FieldPairsClass has the disadvantage of not handling arrays (because the FieldPairsClass relies on the ANY datatype which only accepts references to simple datatypes). See the Language Reference for more information on the ANY datatype.
Недостаток FieldPairsClass в том, что он не обрабатывает массивы (потому что FieldPairsClass полагается на тип данных ANY, который принимает только ссылки на простые типы данных). Подробнее о типе данных ANY см. в Справочнике по языку.
И, не стал копать, но, похоже, он не обрабатывает Memo и Blob, т.е. то, что вне Record