Нужно поменять Owner Name в файлах tps
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
-
- ✯ Ветеран ✯
- Сообщения: 5157
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 11 раз
- Поблагодарили: 26 раз
Нужно поменять Owner Name в файлах tps
Много файлов, да и ещё у клиентов. Есть какая-то идея упростить работу? Или писать тупой конвертер?
We are hard at work… for you. 

- Губин Игорь
- Шубуршун
- Сообщения: 2571
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Благодарил (а): 3 раза
- Поблагодарили: 26 раз
Нужно поменять Owner Name в файлах tps
Тупо писать...
Это я только кажусь дураком! На самом деле я полный идиот!
- Губин Игорь
- Шубуршун
- Сообщения: 2571
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Благодарил (а): 3 раза
- Поблагодарили: 26 раз
Нужно поменять Owner Name в файлах tps
Шаблон дольше писать, если файлов меньше полусотни. Пример: конвертер, который генерит словарь, полон глюков.
Это я только кажусь дураком! На самом деле я полный идиот!
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 5226
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 12 раз
- Поблагодарили: 63 раза
Нужно поменять Owner Name в файлах tps
От опыта зависит. Пишешь конвертер на один файл, затем превращаешь его в шаблон.
C6/C12, ШВС, tps/btrieve.
- Губин Игорь
- Шубуршун
- Сообщения: 2571
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Благодарил (а): 3 раза
- Поблагодарили: 26 раз
Нужно поменять Owner Name в файлах tps
"Какой ты умный, это что-то!"finsoftrz писал(а): 12 Сентябрь 2024, 13:45 От опыта зависит. Пишешь конвертер на один файл, затем превращаешь его в шаблон.

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

Не помню, кажется глюк с присвоением GROUP в рантайме исправили, но не проверял.
Это я только кажусь дураком! На самом деле я полный идиот!
- Губин Игорь
- Шубуршун
- Сообщения: 2571
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Благодарил (а): 3 раза
- Поблагодарили: 26 раз
Нужно поменять Owner Name в файлах tps
Как вариант, можно попробовать через WHO/WHAT и т.п., но надо смотреть.
Это я только кажусь дураком! На самом деле я полный идиот!
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 5226
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 12 раз
- Поблагодарили: 63 раза
Нужно поменять Owner Name в файлах tps
Он же овнера хотел поменять только. Задаёшь в промптах старого и нового, натравливаешь на словарь. Структура не меняется. Если с изменением структуры, то могут быть нюансы, если какие заумные вещи использовать. Если только базовые типы данных, то вообще никаких проблем. У меня лет 20 подобной автоматический конвертор работает, включая подъем структуры на несколько версий вперед.
C6/C12, ШВС, tps/btrieve.
- Губин Игорь
- Шубуршун
- Сообщения: 2571
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Благодарил (а): 3 раза
- Поблагодарили: 26 раз
Нужно поменять Owner Name в файлах tps
finsoftrz писал(а): 12 Сентябрь 2024, 14:06 Задаёшь в промптах старого и нового, натравливаешь на словарь.

Потому и проще, если файлов меньше пары десятков - пройтись ручками.
Это я только кажусь дураком! На самом деле я полный идиот!
-
- Полимат
- Сообщения: 1810
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 24 раза
- Поблагодарили: 10 раз
Нужно поменять Owner Name в файлах tps
Пользуюсь такой конструкцией для создании копии любого файла
Код: Выделить всё
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
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
-
- ✯ Ветеран ✯
- Сообщения: 5157
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 11 раз
- Поблагодарили: 26 раз
Нужно поменять Owner Name в файлах tps
gopstop2007, а можно поподробнее про конструкцию для копии файла. Файлов, которые нужно конвертить, порядка 300. Хотелось бы автоматизации. Шаблон писать пока не представляю как. Хотел на основе стандартного механизма для одного файла размножить на остальные.
We are hard at work… for you. 

- Губин Игорь
- Шубуршун
- Сообщения: 2571
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Благодарил (а): 3 раза
- Поблагодарили: 26 раз
Нужно поменять Owner Name в файлах tps
Самое сложное - правильно обрабатывать "сложные" поля. В принципе, всё можно сделать через примитивное присвоение, кроме BLOBkreator писал(а): 14 Сентябрь 2024, 13:39 gopstop2007, а можно поподробнее про конструкцию для копии файла. Файлов, которые нужно конвертить, порядка 300. Хотелось бы автоматизации. Шаблон писать пока не представляю как. Хотел на основе стандартного механизма для одного файла размножить на остальные.
Это я только кажусь дураком! На самом деле я полный идиот!
-
- Полимат
- Сообщения: 1810
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 24 раза
- Поблагодарили: 10 раз
Нужно поменять Owner Name в файлах tps
Наваял простой пример из своего проекта, упростил (там использовались файлы odbc, memory, tps), оставил только tps.kreator писал(а): 14 Сентябрь 2024, 13:39 gopstop2007, а можно поподробнее про конструкцию для копии файла. Файлов, которые нужно конвертить, порядка 300. Хотелось бы автоматизации. Шаблон писать пока не представляю как. Хотел на основе стандартного механизма для одного файла размножить на остальные.
Просьба к админу бросьте в FAQ.
Пример на C10 ABC
С простым присвоением были проблемы, а с BLOB не пробовал )Губин Игорь писал(а): 14 Сентябрь 2024, 15:47Самое сложное - правильно обрабатывать "сложные" поля. В принципе, всё можно сделать через примитивное присвоение, кроме BLOBkreator писал(а): 14 Сентябрь 2024, 13:39 gopstop2007, а можно поподробнее про конструкцию для копии файла. Файлов, которые нужно конвертить, порядка 300. Хотелось бы автоматизации. Шаблон писать пока не представляю как. Хотел на основе стандартного механизма для одного файла размножить на остальные.
- Вложения
-
- copyListFiles.zip
- (41.21 КБ) 291 скачивание
Последний раз редактировалось gopstop2007 15 Сентябрь 2024, 10:53, всего редактировалось 1 раз.
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
- Губин Игорь
- Шубуршун
- Сообщения: 2571
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Благодарил (а): 3 раза
- Поблагодарили: 26 раз
Нужно поменять Owner Name в файлах tps
да, виноват. Не работал с 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.
И, не стал копать, но, похоже, он не обрабатывает Memo и Blob, т.е. то, что вне RecordНедостаток FieldPairsClass в том, что он не обрабатывает массивы (потому что FieldPairsClass полагается на тип данных ANY, который принимает только ссылки на простые типы данных). Подробнее о типе данных ANY см. в Справочнике по языку.
Это я только кажусь дураком! На самом деле я полный идиот!