Поломался frx файл

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Source
Постоялец
Постоялец
 
Сообщения: 351
Зарегистрирован: 04.09.2007 (Вт) 11:21

Поломался frx файл

Сообщение Source » 27.03.2008 (Чт) 22:01

Не было свободного места на диске, проект в Run-time завис, убил через Диспетчер задач. Теперь не может отобразить форму в дизайнере, ошибка в логе. Как я понимаю, frx файл поломан (выводит ошибку "Ввод после конца файла frx"). Хотел восстановить его из временных файлов VB, в этих tmp сигнатура файла FFCC, затем после некого заголовка идёт заголовок FRX файла, в каком формате хранятся данные в этих tmp и как извлечь из них frx?
Вложения
log.zip
(589 байт) Скачиваний: 37
Буря мглою небо кроет, вихри снежные крутя, то как зверь с VB завоешь, то заплачешь, как дитя...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 28.03.2008 (Пт) 2:38

В разных. FRX это контейнер.
Проще всего удалить FRX-файл и все ресурсы на форме (изображения, большие тексты, свойства некоторых объемных контролов) прописать заново.
Lasciate ogni speranza, voi ch'entrate.

Source
Постоялец
Постоялец
 
Сообщения: 351
Зарегистрирован: 04.09.2007 (Вт) 11:21

Сообщение Source » 28.03.2008 (Пт) 7:16

это немыслимо! Буду восстанавливать...
да и в конце концов, если VB пишет данные во временные файлы, должен же он как-то их восстанавливать!
Буря мглою небо кроет, вихри снежные крутя, то как зверь с VB завоешь, то заплачешь, как дитя...

Vi
Постоялец
Постоялец
 
Сообщения: 739
Зарегистрирован: 25.01.2002 (Пт) 11:03
Откуда: Россия, Ижевск

Сообщение Vi » 28.03.2008 (Пт) 8:10

Source писал(а):Буду восстанавливать...

Открой файл frm, в нем есть упоминания о frx. Типа Picture = "<xxx>.frx":XXXX или Icon = "<xxx>.frx":XXXX. Можно удалить и вновь задать. Или удалить только те, которые выходят за пределы реально существующего файла.
Source писал(а):да и в конце концов, если VB пишет данные во временные файлы, должен же он как-то их восстанавливать!

Это не временный файл. Там хранятся данные, имеющие сложный характер, т.е. больше чем число или текст.
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! (с) КВН

Source
Постоялец
Постоялец
 
Сообщения: 351
Зарегистрирован: 04.09.2007 (Вт) 11:21

Сообщение Source » 28.03.2008 (Пт) 8:23

сложный не сложный, но VB должен же иметь средства отката проекта, для этого он и создаёт, наверное, эти временные файлы...
Буря мглою небо кроет, вихри снежные крутя, то как зверь с VB завоешь, то заплачешь, как дитя...

Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Сообщение Alexanbar » 28.03.2008 (Пт) 8:38

Резервировать надо пользовательские данные.

Source
Постоялец
Постоялец
 
Сообщения: 351
Зарегистрирован: 04.09.2007 (Вт) 11:21

Сообщение Source » 28.03.2008 (Пт) 8:45

да, надо, но не делал... Да и не пользовательские, а мои родные, frx файлик... :cry:
Буря мглою небо кроет, вихри снежные крутя, то как зверь с VB завоешь, то заплачешь, как дитя...

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 28.03.2008 (Пт) 9:42

сложный не сложный, но VB должен же иметь средства отката проекта, для этого он и создаёт, наверное, эти временные файлы...


Не фижу логики. По твоему, если программа создаёт какие-то временные файлы, то это обязательно для обеспечения возможности отката?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Source
Постоялец
Постоялец
 
Сообщения: 351
Зарегистрирован: 04.09.2007 (Вт) 11:21

Сообщение Source » 28.03.2008 (Пт) 11:07

а для чего???
Буря мглою небо кроет, вихри снежные крутя, то как зверь с VB завоешь, то заплачешь, как дитя...

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 28.03.2008 (Пт) 11:10

Source
Тебя глючит. Ты не знаешь, для чего вообще нужны временные файлы?

Они нужны для того чтобы хранить там какую-то временную информацию. Любую временную информацию, а не обязательно сведения для отката.

Тем не менее, сведения для отката там могут быть. Могут, но никак не должны.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Source
Постоялец
Постоялец
 
Сообщения: 351
Зарегистрирован: 04.09.2007 (Вт) 11:21

Сообщение Source » 28.03.2008 (Пт) 11:18

а что значит в логе строка Property Picture in img1 could not be set? Если я удалю в frm секцию
Begin VB.Image img1
Height = 240
Left = 1260
Picture = "main.frx":09C0
Top = 0
Width = 240
End
ничего не поламается?
Буря мглою небо кроет, вихри снежные крутя, то как зверь с VB завоешь, то заплачешь, как дитя...

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 28.03.2008 (Пт) 11:23

а что значит в логе строка Property Picture in img1 could not be set

Свойство 'Picture' в 'img1' не может быть установлено.

Если я удалю в frm секцию
Begin VB.Image img1
Height = 240
Left = 1260
Picture = "main.frx":09C0
Top = 0
Width = 240
End
ничего не поламается?


Имэйдж img1 удалится с формы.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Source
Постоялец
Постоялец
 
Сообщения: 351
Зарегистрирован: 04.09.2007 (Вт) 11:21

Сообщение Source » 28.03.2008 (Пт) 11:43

сейчас уже выводит ошибку "Ввод после конца файла frx", но в лог ничего не пишет, как отловить где проблема? Ссылок, больших по значению, чем размер файла frx в frm уж нет, последняя ссылка отстоит далеко от конца файла, изображение там мелкое, должно считаться полностью...
Буря мглою небо кроет, вихри снежные крутя, то как зверь с VB завоешь, то заплачешь, как дитя...

Source
Постоялец
Постоялец
 
Сообщения: 351
Зарегистрирован: 04.09.2007 (Вт) 11:21

Сообщение Source » 28.03.2008 (Пт) 13:07

Скорее всего, в tmp сохраняет старый frx перед записью нового (и время совпадает). Но как же они различаются! Ссылки на ресурсы пляшут. И зачем VB перезаписывал frx, ничего в контролах не менял, просто правил код...
Но почему же тогда этот хитроумный VB не сохраняет frm перед его перезаписью?! Или он его упаковывает в tmp файле? Или он использует один tmp файл, последовательно перезаписывая frm, затем frx...? :twisted:
Буря мглою небо кроет, вихри снежные крутя, то как зверь с VB завоешь, то заплачешь, как дитя...

Vi
Постоялец
Постоялец
 
Сообщения: 739
Зарегистрирован: 25.01.2002 (Пт) 11:03
Откуда: Россия, Ижевск

Сообщение Vi » 28.03.2008 (Пт) 17:09

Если я удалю в frm секцию ... ничего не поламается?

Зачем удалять секцию целиком, достаточно удалить строку с Picture. Этот контрол останется на форме, просто ему нужно будет вручную задать ту картинку, которую он имел до падения.
сейчас уже выводит ошибку "Ввод после конца файла frx", но в лог ничего не пишет, как отловить где проблема? Ссылок, больших по значению, чем размер файла frx в frm уж нет, последняя ссылка отстоит далеко от конца файла, изображение там мелкое, должно считаться полностью...

Последняя ссылка может ссылаться на буфер, который выходит за пределы файла frx. Лучше и ее удалить.
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! (с) КВН


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 24

    TopList