Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 12 
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Проблема: Написал курсовик на Pascale. Принес преподу. У него не запустился. Я там пути не абсолютные указал на egavga. Терь он требует исправить это прямо в экзэшнике. Как это сделать?? я открыл его блокнотом нашел строку нужную удалил, а он не запускается. Там надо удалить пути для egavga.bgi и для текстовых файлов



Партнер
 

Advanced member
Статус: Не в сети
Регистрация: 30.08.2003
Откуда: Санкт-Петербург
Цитата:
Как это сделать??

проще перекомпилировать. Коли же такая охота извращаться, то надо вписать путь к файлу и поправить размер строки (т.к. в паскале строка = ее размер + сами символы)

_________________
{:€ дед в законе :-) нородный окодемег
почетный пользователь OpenSuSE 11.3
Ремонт и модернизация ноутбуков IBM (Lenovo) ThinkPad


 

Перекомпилировать не пойдет. Он сказал в ехе править. А можно поподробней как размер исправить?

{»D»N»\»b»Ї»Г»q»p»ў»©»ћ»М»Т»Ь»к»2»e»Ћ»˜»ќ»O»\» ^$ ^7 ^C^ ББsБЫБцБ Б+Б e:\bp70\bgi\Graphis Error: Program aborted... e:\txt\fligna.txte:\txt\fliigna.txt љ Бљ
^љ6»U‰её љ0БЃм 1АЈњїњWї Wї WљЯ
»љу»Јћѓ>ћ tcїN Wї
Wj љУБљ@БљфБїN WЌѕ яWя6ћљ~»j љУБљ@БљфБїN Wї Wj љУБљ@БљфБё љБї¦Wї2 WљIБї¦WљМБљфБїVWїD WљIБїVWљМБљфБї¦WљСБљфБЖT љО" љG" љ®" 1АЈЄ1АЈ¬їІWљЪ" їІWљV" я6¬љt" љв" Зў ляўЗ¤ ля¤ї¦WЎ¤Саk>ўш‹…ћ™RPjљ[ БљaБљфБѓ>¤ uМї¦WїW Wj љУБљ@БљфБѓ>ў uћї¦Wљ!БљфБїVWљ!БљфБЙ1АљБ e:\txt\pisk.txtU‰еёZљ0БЃмZЊУЋГЊЫьЌѕ\яЕv№ў у¤ЋЫЖ†¦ю Ж†§ю З†ёю }
мне вот отсюда надо убрать e:\bp70\bgi\ и пути ко всем текстовикам. те тока их названия оставить


 

Member
Статус: Не в сети
Регистрация: 18.03.2004
Откуда: СПб
-=Cr@sH=- писал(а):
Перекомпилировать не пойдет. Он сказал в ехе править. А можно поподробней как размер исправить?

Если препод идиот, то просто не надо его слушать вот и все - перекомпилируй и пусть подавится.
Земенить путь можно и в ехе, но тогда новый путь должен совпадать по размеру со старым, иначе полетит вся структура файла - и то, что в первом символе паскаль хранит длину строки тут АБСОЛЮТНО не при чем!
Еще можно укоротить путь - для этого надо заменить путь, начиная с начала, а последние (лишние) символы заменить символами с кодом 0 или 32 (20h) (пробел).
Т.е. к примеру путь
Код:
'e:\qwe\aaa.txt'
можно заменить на
Код:
'e:\qwe\a.txt  '
а вместо последних двух символов поставить символы с кодом 0 (это можно сделать в hex редакторе или в far-e, где их можно набрать как alt+256, 256 набирать на numpad-e) или пробелы.


 

Member
Статус: Не в сети
Регистрация: 30.01.2005
-=Cr@sH=-
Если манипуляции не нарушат структуру файла, то скачай любой hex-редактор, и поправь им путь.


 

Advanced member
Статус: Не в сети
Регистрация: 30.08.2003
Откуда: Санкт-Петербург
Pyroman
Цитата:
Земенить путь можно и в ехе, но тогда новый путь должен совпадать по размеру со старым, иначе полетит вся структура файла - и то, что в первом символе паскаль хранит длину строки тут АБСОЛЮТНО не при чем!

не совсем.
два случая когда возможно:
а) если ПОСЛЕ строки есть место (может там alignment ака выравнивание данных юзается, так что байта четыре можно оттяпать)
б) если замена будет короче исходной.
Цитата:
Еще можно укоротить путь - для этого надо заменить путь, начиная с начала, а последние (лишние) символы заменить символами с кодом 0 или 32 (20h) (пробел).

это не Си ;) В паскале из строки обрабатывается ровно столько символов, сколько указано в размере строки... Т.е. править надо в двух местах. искспириенс был ))))

_________________
{:€ дед в законе :-) нородный окодемег
почетный пользователь OpenSuSE 11.3
Ремонт и модернизация ноутбуков IBM (Lenovo) ThinkPad


 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
И не забыть пересчитать чексам PE файла.

_________________
Ку ку


 

Member
Статус: Не в сети
Регистрация: 26.10.2004
Откуда: СПб
-=Cr@sH=-
Для правки нужно использовать шестнадцатеричные редакторы(например WinHex), для укорачивания пути достаточно забить нулями лишние символы. Длину править не стоит, т.е. при открытии файла его имя передаётся ОС в виде null-terminated строки.

Daemon писал(а):
И не забыть пересчитать чексам PE файла.

Это поле проверяется только в драйверах ядра NT-систем, так что это лишнее.


 

Member
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
такая бодяга лечится просто и универсально - пути не прописываем, пишем только имена файлов, вайл egavga (а т.ж. graph.tpu полагаю) кидаем в одну директорию с программой. все.

_________________
Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Варианты со встраиванием драйвера в ехе был описан в хелпе по Паскалю. Для этого нужно иметь bin2obj.exe, конвертировать драйвер в .obj, подключать этот файл, а дальше инициализировать с указанием адреса в памяти. Сейчас не могу точно сказать как это делать так как прошло больше 10 лет когда я это делал :)


 

Advanced member
Статус: Не в сети
Регистрация: 30.08.2003
Откуда: Санкт-Петербург
Daemon
какой PE? тут еще небось полноформатный MZ ))))

_________________
{:€ дед в законе :-) нородный окодемег
почетный пользователь OpenSuSE 11.3
Ремонт и модернизация ноутбуков IBM (Lenovo) ThinkPad


 

Member
Статус: Не в сети
Регистрация: 18.03.2004
Откуда: СПб
Root писал(а):
Pyroman
Цитата:
Еще можно укоротить путь - для этого надо заменить путь, начиная с начала, а последние (лишние) символы заменить символами с кодом 0 или 32 (20h) (пробел).

это не Си ;) В паскале из строки обрабатывается ровно столько символов, сколько указано в размере строки... Т.е. править надо в двух местах. искспириенс был ))))

Обрабатываться то будут все символы, но от добавления к пути нулевых символов он не испортится -сам много раз проверял.
Впрочем, никто не мешает изменить заодно и длину строки - хуже не будет ;)


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 12 
-

Часовой пояс: UTC + 3 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan