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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.05.2012, 00:31   #11
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Какая версия дельфи?
Код предназначен для старых версий. Я компилировал в дельфи 2006.
Шифрование не юникодовое - для символов 0..255.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 10.05.2012 в 00:33.
BDA вне форума Ответить с цитированием
Старый 10.05.2012, 23:28   #12
hauk70
Пользователь
 
Регистрация: 06.05.2012
Сообщений: 22
По умолчанию

Delphi XE2 4 update
я не особо пока разбираюсь в каком делфи какая кодировка

еще есть вопрос не относящийся к кодировке, хотел поставить на прогу пароль, собно что хотел, то и сделал, но пришла в голову еще мысль, а именно: Первое -пароль хранить в нетипизированном файле (походу его прочтешь простым текстовым редактором?) и при запуске проги, пороль вытягивается и файла и сверяется. Второе - Пароль на другой форме можно изменить, Соответственно в едит1 пароль из файла загружается, а после ввода в едит2 и нажатия кнопки загружается в файл и при следуйщем запуске он уже другой. Мы это пока не учили, но хочу реализовать, пока остановился на этом =\

Код:
var
  Form3: TForm3;
  password:string[8]; {пароль состоит из 9 символов, не более}
  f:file;

procedure TForm3.Button1Click(Sender: TObject);
begin
{AssignFile(f, 'settings');
 Rewrite(F);
 Reset(F);
 Read(f,password); }
end;
и конечно же он ругается, а я не понимаю как сие чудо писать =\
hauk70 вне форума Ответить с цитированием
Старый 10.05.2012, 23:31   #13
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

http://programmersforum.ru/showpost....59&postcount=2
Собственно, примеры запроса пароля перед входом.
Вам больше подойдет http://programmersforum.ru/showpost....99&postcount=4.
Внимательно изучите unit2 и source code самого project.
В методе form.destroy как раз сохраняются логин и пароль.
Вы можете это перенести в 1 юнит, и изменять пароль оттуда.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 10.05.2012 в 23:35.
BDA вне форума Ответить с цитированием
Старый 12.05.2012, 22:40   #14
hauk70
Пользователь
 
Регистрация: 06.05.2012
Сообщений: 22
Смущение

BDA спасибо, идея понравилась, тем более я так и не смог осилить нетипизированные файлы :D но буду просто шифровать их в обычный .txt (с запуском форм я разобрался альтернативный методом, а жаль)
А теперь по делу:
все еще присутствует проблема с шифрованием\дешифрованием текста, поправить так и не смог =\
вот коды
шифрование
Код:
procedure TForm1.Button3Click(Sender: TObject);
var
  st:string;
  i:cardinal;
  statr,dynr:integer;
begin
if memo1.Text <> '' then
  begin
  st:='';
  progressbar1.max:=length(memo1.text);
  statr:=random(300+80);
  st:=chr(statr);
    for i:=1 to length(memo1.Text) do
    begin
    dynr:=random(300+60);
    st:=st+chr(dynr)+chr(ord(memo1.text[i])+dynr+statr);
    progressbar1.Position:=progressbar1.Position+1;
    end;
  memo2.text:=st;
  progressbar1.Position:=0;
  end
else showmessage('Введите текс в поле');
end;
дешифрование
Код:
procedure TForm1.Button4Click(Sender: TObject);
var
  i,z,d:cardinal;
  st,a,res:string;
  statr,dynr:integer;
begin
if memo2.Text <> '' then
  begin
  i:=2; d:=1;
  statr:=ord(memo2.Text[1]);
  progressbar1.max:=length(memo2.text);
    while i<=length(memo2.text) do
    begin
    dynr:=ord(memo2.Text[i]);
    inc(i);
    a:=memo2.Text[i];
    inc(i);
    st:=st+chr(ord(a)-statr-dynr);
    progressbar1.Position:=progressbar1.Position+1;
    end;
  memo1.text:=st;
  progressbar1.Position:=0;
  end
else  showmessage('Введите текс в поле');
end;
как работает, писал на 1 странице
скоро покажу проект и буду ждать критики и советов, мне нужна 5 :О

Последний раз редактировалось hauk70; 13.05.2012 в 02:39. Причина: решил проблему с формами
hauk70 вне форума Ответить с цитированием
Старый 17.05.2012, 17:04   #15
hauk70
Пользователь
 
Регистрация: 06.05.2012
Сообщений: 22
По умолчанию

Короче вот архив с проектом ТЫК проблему в логике шифрования я не нашел по той причине что ее там нет =\ проблема в кодировках, как с ними бороться я не знаю и не умею, гугл толком не помог. Написано на Delphi XE2. На 1 форме button1click это шифрование, а button2click это дешифрование. Еще в 3 форме есть 2 функции для шифрации и дешифрации в файл, они тоже отказались работать =\ помогите плз
hauk70 вне форума Ответить с цитированием
Старый 17.05.2012, 19:30   #16
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Хм, архив под паролем
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 17.05.2012, 19:50   #17
hauk70
Пользователь
 
Регистрация: 06.05.2012
Сообщений: 22
По умолчанию

та фак, пароль 1111, я же должен был дописать его :О извиняюсь :3
hauk70 вне форума Ответить с цитированием
Старый 17.05.2012, 22:41   #18
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Шифрование 0 работает неправильно по очевидным причинам. Вы написали свое вместо исправленного моего. Ну нету анси символов с кодами выше 255. Соответственно получается полная белиберда. Да и текст в мемо хранится скорее в Unicode, чем в UTF8. У вас вряд ли в задании сказано, что шифрование должно работать с юникодом. Все строки в шифровании заменяем на ansistring, а Memo1 передаем как ansistring(memo1.text). Потом кодируем нормальной функцией шифрования и присваиваем результат memo2.text без перекодировки.

Вот так в моем Delphi 2010 отлично работает (по крайней мере ваш текст из мемо1 шифрует и дешифрует).

ПС 6.66 мб - намекает
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 17.05.2012 в 23:23.
BDA вне форума Ответить с цитированием
Старый 18.05.2012, 23:39   #19
hauk70
Пользователь
 
Регистрация: 06.05.2012
Сообщений: 22
По умолчанию

все оказалось намного намного проще =)

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  st: string;
  i: cardinal;
  buf:char;
  statr,dynr:integer;
begin
   if memo1.Text <> '' then
     begin
     st:='';
     statr:=random(10)+33;
     st:=chr(statr);
       for i:=1 to length(memo1.Text) do
       begin
       dynr:=random(5)+33;
       st:=st+chr(dynr)+chr(ord(memo1.text[i])+ (dynr mod 8)+(statr mod 8));
       end;
     memo2.text:=st;
     end
   else showmessage('Введите текст в поле')
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  st: string;
  a:char;
  i: cardinal;
  statr,dynr:integer;
begin
    if memo2.Text <> '' then
    begin
      i:=2;
      statr:=ord(memo2.Text[1]);
      Statr:=Statr mod 8;
      while i<=length(memo2.text) do
      begin
        dynr:=ord(memo2.Text[i]);
        inc(i);
        a:=memo2.Text[i];
        inc(i);
        Dynr:=Dynr mod 8;
        st:=st+char(ord(a)-statr-dynr);
       end;
    memo1.text:=st;
    end
    else  showmessage('Введите текс в поле');
end;
Вложения
Тип файла: rar Курсовик.rar (1.94 Мб, 9 просмотров)
hauk70 вне форума Ответить с цитированием
Старый 19.05.2012, 00:16   #20
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Раз работает, то поздравляю
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка текста Memo fineleave Помощь студентам 4 11.06.2011 21:48
memo атрибут текста grom333 Помощь студентам 10 21.03.2010 20:34
Memo - обробка текста sv2311 Помощь студентам 0 25.04.2009 17:42
Вставка текста в memo Revan Общие вопросы Delphi 2 23.05.2008 17:45
В Memo сделать так, чтобы текст был разного цвета, разноцветный memo Artem Компоненты Delphi 3 07.09.2007 13:40