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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.07.2010, 22:51   #11
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

вот рабочий пример. Простейший!

Проверки на то, правильный ли пароль используется - нет! Проверки на ошибки доступа к файлу - нет! ну и т.д....

но всё - "шуршит"!



p.s. чтобы тем любопытствующим, что там "у нё внутре" не качать архив вместе c exe-шником, привожу код прямо здесь:
Код:
procedure TForm1.btEncodeClick(Sender: TObject);
var key, sInput, sResult : string;
  myFileStream : TFileStream;
  i, k  : integer;
begin
  myFileSTream := TFileStream.Create(edFileName.Text, fmCreate );
  key := Trim(edKey.Text);
  sInput := Memo1.Text;

  k := 1;
  sResult := '';
  for i := 1 to length(sInput) do
    begin
      sResult := sResult + chr((ord(sInput[i]) XOR ord(key[k])));
      inc(k);
      if (k>length(key)) then k := 1;
    end;

  myFileSTream.Write(sResult[1],length(sResult));
  FreeAndNil(myFileSTream); // закроем файл
  Application.MessageBox('Готово. Файл записан.','Информация',
                       MB_ICONINFORMATION or mb_ok);
end;

procedure TForm1.btDecodeClick(Sender: TObject);
var key, sInput, sResult : string;
  myFileStream : TFileStream;
  i, k, L  : integer;
begin
  if Not FileExists(edFileName.Text) then begin
    Application.MessageBox(PChar('Файл '+edFileName.Text+' не найден!'),
            'Ошибка',  MB_ICONERROR or mb_ok);
    Exit;
  end;
  key := Trim(edKey.Text);
  myFileSTream := TFileStream.Create(edFileName.Text, fmOpenRead );

  L := myFileSTream.Size;
  SetLength(sResult, L);
  myFileSTream.Read(sResult[1], L);
  FreeAndNil(myFileSTream); // закроем файл

  k := 1;
  for i := 1 to L do
    begin
      sResult[i] := chr((ord(sResult[i]) XOR ord(key[k])));
      inc(k);
      if (k>length(key)) then k := 1;
    end;

  Memo1.Text := sResult;
  Application.MessageBox('Готово. Файл расшифрован.','Информация',
                       MB_ICONINFORMATION or mb_ok);

end;
Вложения
Тип файла: rar CoderExample.rar (180.6 Кб, 19 просмотров)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.07.2010, 23:12   #12
T-dayne
Пользователь
 
Аватар для T-dayne
 
Регистрация: 07.02.2010
Сообщений: 54
По умолчанию

Serge_Bliznykov
о огрооомное спасибо, низкий поклон, и + в репутацию
T-dayne вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кривое отображение. Вроде ясно, а исправить незнаю 3OH! HTML и CSS 3 02.07.2010 10:23
Перевод из Memo по английскому в Memo по русскому Sanek777 Общие вопросы Delphi 5 26.09.2008 00:17
Кривое Сохранение в MySQL MegaLord PHP 1 05.01.2008 19:11
В Memo сделать так, чтобы текст был разного цвета, разноцветный memo Artem Компоненты Delphi 3 07.09.2007 13:40
В Memo ввёл раз!!! в Memo ввёл два!!! а где Memo ввёл раз??? Хs-You Компоненты Delphi 6 19.08.2007 19:48