Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.05.2015, 20:27   #31
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Опять Юра-орхиватор. Не надоело ерунду нести?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 14.05.2015, 20:30   #32
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

ХЗ, может он по теме отвечает... он обещал не шуметь вроде как... кстати, пишет теперь более менее грамотно...

пусть только ещё раз попробует написать то, что я сочту ерундой - снова вылетит.
Вадим Мошев вне форума Ответить с цитированием
Старый 15.05.2015, 01:53   #33
ДралсяСошибками
Форумчанин
 
Аватар для ДралсяСошибками
 
Регистрация: 31.05.2011
Сообщений: 301
По умолчанию

Мне почему-то вспомнился школьник, который там какой-то мощный антивирус создал, он то же собирался писать революционный архиватор)))
ДралсяСошибками вне форума Ответить с цитированием
Старый 15.05.2015, 05:34   #34
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Если напишу всё-таки архиватор с распаковкой то свисну.
Чудесно, надеюсь до этого волшебного момента мы про него не услышим (не увидим/не узнаем), а то Ваша одержимость начинает вызывать раздражение.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 15.05.2015, 07:30   #35
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Меня радует, что сообщение у него стали более менее грамотными...
но
Цитата:
Если напишу всё-таки архиватор с распаковкой то свисну.
надо продолжать работать над собой... не знаю, что он там делает, лечится ли амбулаторно или просто врач ему выписал лекарства...
Вадим Мошев вне форума Ответить с цитированием
Старый 15.05.2015, 08:50   #36
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
который там какой-то мощный антивирус создал
Бабушкин. Был такой крендель.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.05.2015, 02:48   #37
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

Ребят, вот функции шифровки/расшифровки файла...спасибо BDA ))

При сохранении файл шифруется с ключом и сохраняется с моим расширением (*.xtst), при открытии-расшифровывается файл, но сначала ищутся все файлы *.xtst

Код:

function encrypt(const text, key: string): string;  
var
  i, p1, p2, len: integer;
  s: string;
begin
  s := text;
  len := length(key);
  for i := 1 to length(text) do
  begin
    p1 := pos(text[i], alp);
    if p1 = 0 then
      continue;
    p2 := pos(key[(i - 1) mod len + 1], alp);
    s[i] := alp[(p1 + p2 - 1) mod alplen + 1];
  end;
  result := s;
end;



function decrypt(const text, key: string): string;   
var
  i, p1, p2, len: integer;
  s: string;
begin
  s := text;
  len := length(key);
  for i := 1 to length(text) do
  begin
    p1 := pos(text[i], alp);
    if p1 = 0 then
      continue;
    p2 := pos(key[(i - 1) mod len + 1], alp);
    s[i] := alp[(p1 - p2 - 1 + alplen) mod alplen + 1];
  end;
  result := s;
end;
Дак вот, вопрос: все-таки как лучше сделать:

записать контрольную сумму в последнюю строку файла перед сохранением, а при открытии одного из файла извлекать сумму из последней строки, в числовую переменную
Перезаписать в память расшифрованный файл без контрольной суммы (Он уже расшифрован и находится в TstringList).
Сохранить содержимое стринглиста в файл, применить ту же функцию, которая записала контрольную сумму при создании файла, записать во вторую переменную
Удалить файл, который использовался, но не трогать исходный
Сравнить две переменных
Вывод сообщение об ошибке.

С предложением удалить файл или продолжить с ним работу на страх и риск препода :D

Вот как-то так? Если не прав-поправьте. Прошу объяснить все максимально доступно...

По коду, который выше, вот этому:
1. зачем там массив от 0..500? Что если будет выход за рамки (пытаюсь понять код, копипасту не приветствую).
Код:
function GetCheckSum(FileName: string): DWORD;
var
  F: file of DWORD;
  P: Pointer;
  Fsize: DWORD;
  Buffer: array[0..500] of DWORD;
begin
  FileMode := 0;
  AssignFile(F, FileName);
  Reset(F);
  Seek(F, FileSize(F) div 2);
  Fsize := FileSize(F) - 1 - FilePos(F);
  if Fsize > 500 then
    Fsize := 500;
  BlockRead(F, Buffer, Fsize);
  Close(F);
  P := @Buffer;
  asm
     xor eax, eax
     xor ecx, ecx
     mov edi , p
     @again:
       add eax, [edi + 4*ecx]
       inc ecx
       cmp ecx, fsize
     jl @again
     mov @result, eax
  end;
end;
При компиляции этого кода возникает ошибка, которая на скрине тогда, когда к назавнию функции добавляю имя формы, чтоб можно было обращаться от других форм. т.е
если напишу

function Tform1.GetCheckSum(FileName: string): DWORD;-возникает ошибка
Изображения
Тип файла: jpg err.jpg (83.7 Кб, 136 просмотров)
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 19.05.2015, 07:27   #38
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я бы в файле ответ первые 8-10 или сколько там нужно байт под контрольную сумму (или правильнее назвать это подписью), и перезаписывал бы туда.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.05.2015, 09:24   #39
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

А с ошибкой как быть? Не компилируется почему-то.
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 19.05.2015, 09:30   #40
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Ну видимо в описании формы не прописана - в паблике пропиши. А еще лучше вынести в отдельный юнит её и ей подобные если есть
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать информацию о скачиваемом с сервера файле Solmir741 Microsoft Office Excel 6 06.08.2014 14:03
Как в делфи узнать информацию о ехе файле? Ice_Han Общие вопросы Delphi 1 15.03.2012 20:09
Защитить данные в файле Человек_Борща Общие вопросы по программированию, компьютерный форум 12 17.02.2012 06:55
MS SQL Server 2000 как защитить информацию от случайного просмотра xxxsas SQL, базы данных 4 23.12.2008 17:18
Как узнать информацию о PE файле Smoke Win Api 5 02.10.2007 13:10