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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.02.2011, 12:42   #11
CAMOBAP
Форумчанин
 
Регистрация: 07.12.2010
Сообщений: 115
По умолчанию

Проблема в том что не расшифровываются те строки в которых между словами есть пробелы.

Последний раз редактировалось CAMOBAP; 27.02.2011 в 13:51.
CAMOBAP вне форума Ответить с цитированием
Старый 27.02.2011, 16:18   #12
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от CAMOBAP
Проблема в том что не расшифровываются те строки в которых между словами есть пробелы.
Сочувствую.. перечитывайте мой предыдущий пост (особенно про непечатные символы) до просветления...
Нужна будет помощь - пишите...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.02.2011, 16:37   #13
CAMOBAP
Форумчанин
 
Регистрация: 07.12.2010
Сообщений: 115
По умолчанию

Мм... просто ранее все отлично получалось ,были проблемы конечно, но все решалось. Какой другой вариант решения вы можете предложить?
CAMOBAP вне форума Ответить с цитированием
Старый 27.02.2011, 16:54   #14
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Какой другой вариант решения вы можете предложить?
да вариантов решения может быть масса!
так, навскидку, самые простые и практически безболезненные (изменение всего пары/другой строк исходного кода).
Заменить запись/чтение на запись/чтение через TFileStream

или перед записью переводить строку в набор печатных символов (например, через BASE64)

достаточно?...

p.s. про первый способ я Вам уже неоднократно рассказывал!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.02.2011, 17:14   #15
CAMOBAP
Форумчанин
 
Регистрация: 07.12.2010
Сообщений: 115
По умолчанию

Как использовать Filestream вместе с OpenDialog?
CAMOBAP вне форума Ответить с цитированием
Старый 27.02.2011, 18:05   #16
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Код:
function XORStr(const S: string) : string;
const MKey : ShortString = 'Runtime DLL';
var sRezult : string;
  i, k : integer;
begin
  k := 1;
  sRezult := S;
  for i:=1 to Length(sRezult) do begin
    sRezult[i] := char(ord(sRezult[i]) xor ord(MKey[k]));
    inc(k);
    if k>length(MKey) then k := 1;
  end;
  XORStr := sRezult;
end;

procedure TForm2.Button1Click(Sender: TObject);
var tnz : String;
    LenTnz : integer;
    FRez : TFileStream;
begin
   if not (sMemo1.Text='') then
   begin
        tnz:=sMemo1.Text;
        if sSaveDialog1.Execute then begin
           FRez := TFileStream.Create(sSaveDialog1.FileName, fmCreate );
           try
             tnz :=  XORStr(tnz);
             LenTnz := Length(tnz);
             FRez.Write(LenTnz, SizeOf(Integer));
             FRez.Write(tnz[1], LenTnz);
           finally
             FreeAndNil(FRez);
             Application.MessageBox('Записано!',
                         'Info', MB_ICONINFORMATION or MB_OK);
           end;
        end;
   end;
end;

procedure TForm2.Button2Click(Sender: TObject);
var tnz : String;
    LenTnz : integer;
    FRez : TFileStream;
begin
  if sOpenDialog1.Execute then begin
       FRez := TFileStream.Create(sOpenDialog1.FileName, fmOpenRead );
      try
       tnz := '';
       FRez.Read(LenTnz, SizeOf(Integer));
       if LenTnz>0 then begin
         SetLength(tnz, LenTnz);
         FRez.Read(tnz[1], LenTnz);
         tnz :=  XORStr(tnz);
       end;
       sMemo1.Text := tnz;
     finally
       FreeAndNil(FRez);
       Application.MessageBox('Прочитано!',
                   'Info', MB_ICONINFORMATION or MB_OK);
     end;
  end;

end;
Button1 - 'Зашифровать и сохранить'
Button2 - 'Прочитать и расшифровать'
Вложения
Тип файла: rar XorExample.rar (2.0 Кб, 16 просмотров)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.02.2011, 19:36   #17
CAMOBAP
Форумчанин
 
Регистрация: 07.12.2010
Сообщений: 115
По умолчанию

Один вопрос при записи.
FRez.Write в скобках первой идет переменная которая записывается в файл,а после запятой что тогда?
CAMOBAP вне форума Ответить с цитированием
Старый 27.02.2011, 19:38   #18
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

её размер.
(или если быть точным то размер данных по указателю переданному в первом параметре(в первом параметре передается указатель на переменную, а не она сама))
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 27.02.2011, 20:06   #19
CAMOBAP
Форумчанин
 
Регистрация: 07.12.2010
Сообщений: 115
По умолчанию

Спасибо работает.Только проблема в другом. При повторном открытие программы и открытия файла опять появляются все те же ошибки
CAMOBAP вне форума Ответить с цитированием
Старый 27.02.2011, 21:38   #20
CAMOBAP
Форумчанин
 
Регистрация: 07.12.2010
Сообщений: 115
По умолчанию

Короче не мой старый не ваш способ не подошел. Зато сделал по другому. И как ни странному все работает. Вот решение
Код:
if not sOpenDialog1.Execute
then
exit;
sl:=TStringList.Create;
sl.LoadFromFile(sOpenDialog1.Filename);
key:='1234';
for i := 0 to (length(sl.text) div length(key)) do
    longkey := longkey + key;
for i := 1 to length(sl.text) do
begin
    toto := chr((ord(sl.text[i]) xor ord(longkey[i])));
    res := res + toto;
end;

Последний раз редактировалось CAMOBAP; 27.02.2011 в 21:46.
CAMOBAP вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
StringList adr Общие вопросы Delphi 0 05.11.2010 18:43
Поиск в StringList Gerzs Общие вопросы Delphi 1 17.01.2010 20:07
Заполнения StringGrid из StringList xvedar Общие вопросы Delphi 0 03.01.2010 18:04
Раздваивание строки в StringList (Delphi 7) alxd Помощь студентам 8 23.09.2009 13:11
stringlist grater83 Общие вопросы Delphi 2 21.09.2009 14:26