Вопросы шифрования

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
C_O_D_E
Сообщения: 296
Зарегистрирован: 13 фев 2008, 20:10
Откуда: Беларусь. Орша
Контактная информация:

MOTOCoder писал(а):Приведите фрагмент кода, который не пошел.
Спасибо. попробую сама разобраться, если не добью, клятвенно обещаю обратиться ТОЛЬКО к Вам.
Еще раз большое спасибо.
Если назначен специальный человек для контроля за чистотой исходной информации, то найдется изобратательный идиот, который придумает способ, чтобы неправильная информация прошла этот контроль.
C_O_D_E
Сообщения: 296
Зарегистрирован: 13 фев 2008, 20:10
Откуда: Беларусь. Орша
Контактная информация:

Serge_Bliznykov писал(а):Уважаемая, CODE.
Если нужна будет помощь с шифрацией/чтением зашифрованных файлов - милости прошу.
Кстати, если подключить бесплатную библиотечку криптования, то можно закрыть файлик совсем "по взрослому".... Хотя, имхо, в данном случае в этом нет необходимости.
Боюсь, как раз необходимость есть. если бы Вы кратко могли рассказать в чем суть этого закрывания, я бы была благодарна. именно от этого зависит конечная оценка моей курсовой работы. заранее спасибо.
Если назначен специальный человек для контроля за чистотой исходной информации, то найдется изобратательный идиот, который придумает способ, чтобы неправильная информация прошла этот контроль.
C_O_D_E
Сообщения: 296
Зарегистрирован: 13 фев 2008, 20:10
Откуда: Беларусь. Орша
Контактная информация:

2 MOTOCoder
я ошиблась в описании. т.к. между именем и RECORD поставила : вместо =.
Спасибо.
Если назначен специальный человек для контроля за чистотой исходной информации, то найдется изобратательный идиот, который придумает способ, чтобы неправильная информация прошла этот контроль.
BBB
Сообщения: 1298
Зарегистрирован: 27 дек 2005, 13:37

Для убыстрения доступа к полям записи обычно (а точнее, в зависимости от директивы $A ) производится выравнивание полей записи по слову/двойному слову/четверному слову. Т.е., говоря по-простому, в памяти, отводимой под экземпляр данной записи имеются неспользуемые "пустоты". Из-за этого таке увеличивается и размер (SizeOf) записи. Если при описании записи (record), добавлено ключевое слово packrd, то такое выравнивание не производится, и "пустоты" отсутсвуют.

Например, при выравнивании по слову запись:
type tRec = record
m_fld1 : byte;
m_fld2 : byte;
m_fld3 : byte;
end;

будет занимать 6 байт, а запись:
type tRec = packed record
m_fld1 : byte;
m_fld2 : byte;
m_fld3 : byte;
end;

будет занимать 3 байта.

Из хелп-а описание директивы выравнивания:

Код: Выделить всё

Type    Switch
Syntax  {$A+}, {$A-}, {$A1}, {$A2}, {$A4}, or {$A8}
        {$ALIGN ON}, {$ALIGN OFF}, {$ALIGN 1}, {$ALIGN 2},
        {$ALIGN 4}, or {$ALIGN 8}
Default {$A8}
        {$ALIGN 8}
Scope   Local
Remarks

The $A directive controls alignment of fields in record types and class structures.

In the {$A1} or {$A-} state, fields are never aligned. All record and class structures are packed.

In the {$A2} state, fields in record types that are declared without the packed modifier
and fields in class structures are aligned on word boundaries.

In the {$A4} state, fields in record types that are declared without the packed modifier
and fields in class structures are aligned on double-word boundaries.

In the {$A8} or {$A+} state, fields in record types that are declared without the packed
modifier and fields in class structures are aligned on quad word boundaries.

Record type field alignment is described in the Object Pascal Language Guide.
See Record types.

Regardless of the state of the $A directive, variables and typed constants are always
aligned for optimal access. In the {$A8} state, execution will be faster.
MOTOCoder
Сообщения: 548
Зарегистрирован: 14 янв 2008, 20:27
Откуда: Россия, Псков

Предполагал что-то подобное. Спасибо, очень полезная информация.
Ни что так не ограничивает фантазию программиста, как компилятор...
C_O_D_E
Сообщения: 296
Зарегистрирован: 13 фев 2008, 20:10
Откуда: Беларусь. Орша
Контактная информация:

Господа, не могу записать в обыкновенный текстовый файл. компилятор пропускает, а программа психует. выдает ошибку 123.

Код: Выделить всё

 AssignFile(F,'C:\...\IO.txt');
 Rewrite(F);
 Writeln (Namearray.Sname);
 Writeln (Namearray.Name);
 Writeln (Namearray.Group);
 CloseFile(F);

где f - в VAR'е описана как файловая переменная (TextFile).

Будьте добры, подскажите.
Если назначен специальный человек для контроля за чистотой исходной информации, то найдется изобратательный идиот, который придумает способ, чтобы неправильная информация прошла этот контроль.
MOTOCoder
Сообщения: 548
Зарегистрирован: 14 янв 2008, 20:27
Откуда: Россия, Псков

C:\...\IO.txt - путь так и указан? Если так, то он никуда не указывает.
Попробуйте указать полный путь, или корректный относительный.
Кстати, лучше приводите не только коды ошибок, но и текстовое описание(если оно есть).
И еще-файл должен быть текстовым, или это очередная типичная задача на записи и типизированные файлы?
Ни что так не ограничивает фантазию программиста, как компилятор...
C_O_D_E
Сообщения: 296
Зарегистрирован: 13 фев 2008, 20:10
Откуда: Беларусь. Орша
Контактная информация:

Прошу прощения. не указала где именно ошибка:
ошибка идет на
Rewrite(f);
т.е. на следующую строку после Assign.

Это не задача на какой-либо вид файлов, это моя курсовая работа.
Если назначен специальный человек для контроля за чистотой исходной информации, то найдется изобратательный идиот, который придумает способ, чтобы неправильная информация прошла этот контроль.
MOTOCoder
Сообщения: 548
Зарегистрирован: 14 янв 2008, 20:27
Откуда: Россия, Псков

Это явно ошибка ввода/вывода - код корректный, но система не смогла создать файл. Еще раз советую проверить путь. C:\...\IO.txt указывает вникуда.
Ни что так не ограничивает фантазию программиста, как компилятор...
C_O_D_E
Сообщения: 296
Зарегистрирован: 13 фев 2008, 20:10
Откуда: Беларусь. Орша
Контактная информация:

Спасибо. Вы как всегда правы. Полный путь прописала
Теперь ошибка 105 ("IO error 105"(c)), программа не хочет записывать в файл. т.е. ошибка на Writeln(...);
Если назначен специальный человек для контроля за чистотой исходной информации, то найдется изобратательный идиот, который придумает способ, чтобы неправильная информация прошла этот контроль.
Ответить