![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Корректный Mini_Archiver [D7, WinXP]
kyn66 © (2008-03-26 10:42:00)Может кто знает такую утилиту - САБЖ. Нашел на http://www.delphisources.ru/pages/sources/system/2008-year/mini-archiver.htmlЗаинтересовала тем, что хотелось разобраться самому, как пишутся архиваторы. Но в самом начале были получены огорчения... Если задать архиву коммент, русскими буквами, то при попытке открытия выдается ошибка Access violation. Я так полагаю, что ошибка кроется в описании коммента в записи
type
TArchiveHead=packed record
Signature:array[0..2] of char;
Version:String[4];
Author:array[0..11] of char;
Comment:String;
CountFiles:longint;
PasswordProtect:Boolean;
end;
А хоть и ангельскими буквами ввести - показывает некий кракозябрик, правда зато не вылетает при открытии архива. Что скажут мастера по этому поводу?
kyn66 (2008-03-26 15:11:00) [1]Заработало, уже проверил, Сенькс за легбез(хотя и не я автор этой проги ;-))
tesseract (2008-03-26 11:15:00) [2]
> Вот насчет String я и имею ввиду/ Так вроде нельзя.
String тебе длину даст в 4 байта в записи. Это ссылка. Поэтому работать не будет.
>> Author:array[0..11] of char;
не зря тут не string применяеться, ой не зря :-) Задай Comment:array [0..255]of char и всё начнёт работать.
kyn66 (2008-03-26 11:00:00) [3]Коммент ессно сам ввожу. Вот насчет String я и имею ввиду/ Так вроде нельзя.
tesseract (2008-03-26 10:47:00) [4]А ты этот Comment не сама ввела ?
string не может быть в packed record, обявляй как String[255].