powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Упаковка библиотеки классов - как ?
15 сообщений из 15, страница 1 из 1
Упаковка библиотеки классов - как ?
    #32849258
strizh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VFP6.
У меня файлы контейнера библиотека классов раздулись до неприличия, больше половины удаленных записей. Хочу упаковать.
Открываю командой use монопольно.
Даю pack - фокс дает ошибку, "memo-файл is missing (invalid)".
Если даю команду pack memo, ошибка похожая.
Это как - формат контейнера библиотеки классов это не совсем dbf-fpt ?
Какие-то флажки не совпадают, и из-за этого надо вместо pack писать что-то другое ?
Сначала думал, что проблема с тем, где размещены файлы. Перенес с сети на локальный нерасшаренный диск - то же самое :(
...
Рейтинг: 0 / 0
Упаковка библиотеки классов - как ?
    #32849322
Crip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По идее должна помочь просто COMPILE. При этом ни одна библиотека не должна в данный момент использоваться.
...
Рейтинг: 0 / 0
Упаковка библиотеки классов - как ?
    #32850087
strizh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
COMPILE на что ? Файл vcx ? Не получается
...
Рейтинг: 0 / 0
Упаковка библиотеки классов - как ?
    #32850099
Crip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеется ввиду COMPILE CLASSLIB конечно
...
Рейтинг: 0 / 0
Упаковка библиотеки классов - как ?
    #32850611
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перекомпили проект с опцией "Recompile All Files". Это автоматически упакует все классы.

Да, перед этой операцией дай команду CLEAR ALL
...
Рейтинг: 0 / 0
Упаковка библиотеки классов - как ?
    #32850920
strizh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мдя. У меня что-то явно не то. Compile classlib и перекомпиляция проекта дают все ту же ошибку для библиотеки: memo file ...vct is missing or is invalid. А на другой (маленькой) библиотеке все нормально.
Пробовал по-другому. Обозвал файл vcx как dbf, а vct как fpt. Пробую открывать его как use mylib.dbf - вылазит ошибка: file .dbc does not exist.
Та же ошибка вылазит при попытке сделать append from из этого файла. А если открыть библиотеку командой use ? (показав потом на файл .vcx), а потом сделать copy all to mylibcopy, то фокс задумывается НАДОЛГО, строит 2 файла - mylibcopy.dbf (короче исходного вдвое, как и ожидалось), и mylibcopy.fpt с размером почти В 20 РАЗ БОЛЬШЕ. В этом файле отдельные куски повторяются по многу раз - явная ошибка самого фокса. У меня VFP6 SP5.
...
Рейтинг: 0 / 0
Упаковка библиотеки классов - как ?
    #32851029
piva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
Use MyVCX.VCX 
Copy to MyVCX2.VCX 
Use MyVCX2 Exclu
pack
use
rename MyVCX2.VCX to MyVCX.VCX
rename MyVCX2.VCT to MyVCX.VCT
Вобщем где-то так и делал завсегда :D
...
Рейтинг: 0 / 0
Упаковка библиотеки классов - как ?
    #32851186
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
strizh А если открыть библиотеку командой use ? (показав потом на файл .vcx), а потом сделать copy all to mylibcopy, то фокс задумывается НАДОЛГО, строит 2 файла - mylibcopy.dbf (короче исходного вдвое, как и ожидалось), и mylibcopy.fpt с размером почти В 20 РАЗ БОЛЬШЕ. В этом файле отдельные куски повторяются по многу раз - явная ошибка самого фокса. У меня VFP6 SP5.
Это не ошибка Фокса. Это ошибка мемо-файла (о чем тебе Фокс говорил много раз), точнее разрушение его структуры (возможно, что даже без потери информации). Так что, вооружись терпением и вычищай ненужные "хвосты"...
Примерно так же у меня было совсем недавно, когда надо было восстановить Вордовский файл (имевшийся в единственном экземпляре на сбойной дискетке) при помощи Нортоновских утилит чтения диска на низком уровне... Восстановить удалось около 90%...
...
Рейтинг: 0 / 0
Упаковка библиотеки классов - как ?
    #32851188
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
piva
Код: plaintext
1.
2.
3.
4.
5.
6.
Use MyVCX.VCX 
Copy to MyVCX2.VCX 
Use MyVCX2 Exclu
pack
use
rename MyVCX2.VCX to MyVCX.VCX
rename MyVCX2.VCT to MyVCX.VCT
Вобщем где-то так и делал завсегда :D
Это хорошо, если исходная библиотека не является сбойной. Иначе - возвращаемся к началу топика...
...
Рейтинг: 0 / 0
Упаковка библиотеки классов - как ?
    #32851202
Фотография Hel!Riser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЭто хорошо, если исходная библиотека не является сбойной. Иначе - возвращаемся к началу топика...
если в начале топика грилось, што "окрываю..." то копирование таблицы как раз и исправит проблему мемо-данных :Р
...
Рейтинг: 0 / 0
Упаковка библиотеки классов - как ?
    #32852858
akrisiuna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
USE <file.vcx> EXCLUSIVE
PACK MEMO
USE 
...
Рейтинг: 0 / 0
Упаковка библиотеки классов - как ?
    #32855703
strizh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да по всякому уже пробовал. Обидно то, что размер исходной библиотеки 1.3 Мб, а после извратов получается 17 Мб. И без извратов фокс не строит exe-шку (ошибку см. выше). Ну и размер exe получается 19 Мб, а пару недель назад (до порчи) было 1.5 Мб. Праздник какой-то. Нет выхода и придется писать какой-то построчный сохраняльщик dbf-файла библиотеки с вычищанием в memo-полях какого-нить мусора ?
...
Рейтинг: 0 / 0
Упаковка библиотеки классов - как ?
    #32856764
strizh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нашел трабл наконец-то. Одна из строк в таблице библиотеки классов не содержала ничего (заголовков, имен и пр.), кроме ОГРОМНОГО текста (огрызков моих методов, описаний классов, компилированного кода и пр.) в поле objname (!). Удалил эту строку, сделал copy all to ... - размер библиотеки стал 80 Кб. 8-() Видимо, в процессе редактирования объектов библиотеки Fox складывал туда по ошибке всякий мусор, а потом при компиляции (или упаковки) библиотеки, натыкаясь на такой бред в таком поле, рассказывал про ошибку memo-файла.
...
Рейтинг: 0 / 0
Упаковка библиотеки классов - как ?
    #32856816
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi strizh!

А ты после COPY TO не забыл сделать PACK и потом COMPILE CLASSLIB?
Хотя конечно после подобных крахов надо очень тщательно проверить все
memo-поля vcx (скажем первые поля - Class, ClassLoc, BaseClass, ObjName,
Parent всегда должны содержать не более одной строки и некоторые даже не
более одного слова!) В поле Propetries перечислены все "изменённые" свойства
для каждого объекта - посмотри нету ли там "мусора" - аналогично в поле
Methods должен быть только исходник... ObjCode можно сразу BLANK сделать -
при COMPILE CLASSLIB оно заново заполнится. Для прочих полей тоже есть
описание - что там должно быть, а чего нет... В общем восстановить всё можно
при желании... Конечно если есть ЧТО восстанавливать :)
P.S. Надеюсь после этого казуса ты научишься делать Backup :)

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Упаковка библиотеки классов - как ?
    #32856881
strizh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Backup как раз не был проблемой. Только что вычислил, что было наиболее вероятной первопричиной всех бед. Права на каталог Netware, где лежала библиотека, не содержали Access Control. А поскольку все версии fox очень любят манипулировать атрибутами файлов и делать всякие команды типа rename (эти функции использует fox во время компиляции библиотеки), то в какой-то момент сетевая файловая система возвращала ошибку из-за отсутствия права, а fox после нее не откатывал библиотеку в первоначальное состояние (откуда ему взяться !), и не возвращал истинную ошибку файловой системы. Мой второй программер (программистка) это проигнорировала, а я наткнулся в самый неподходящий момент :-(
Все починилось :)
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Упаковка библиотеки классов - как ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]