Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.18;
Скачать: CL | DM;

Вниз

Шифрование файлов   Найти похожие ветки 

 
alec_sey   (2006-05-30 12:30) [0]

Помогите
нужно считать блок
затем каждый I-й елемент блока xorom сопоставить с введённым I-м елементом числовой строки и записть его. числовая строка может быть разной длинны поэтому нужно исп дин массивы а не очень умею, Конечно извените я уже задавал подобный вопрос но не понял, может
у кого есть код или ссылка, буду благодарен


 
Сергей М. ©   (2006-05-30 12:46) [1]

Что за "числовая строка" ?

Приведи пример ..


 
alec_sey   (2006-05-30 12:52) [2]

к примеру считал блок "10011001" , ввёл в мемо "12345678"  присвоил
целочисленному  массиву то что в мемо, и каждый елемент блока "10011001" циклом прогнал ксором c "12345678" и записал блок в другой файл.


 
Сергей М. ©   (2006-05-30 12:55) [3]

Т.е. размер каждого очередного считываемого блока должен соответствовать длине "числовой строки", я правильно понял ?


 
alec_sey   (2006-05-30 12:57) [4]

Да


 
alec_sey   (2006-05-30 12:59) [5]

Т е не очредного а раз ввели определённой длинны о посколько чтитывает
каждый блок


 
Сергей М. ©   (2006-05-30 14:06) [6]

var
sfs, dfs: TFilestream;
KeyLen, BlockLen, i: Integer;
StrKey: String;
Block, BinKey: PByteArray;

..
StrKey := Memo.Lines[0];
KeyLen := Length(StrKey);
GetMem(BinKey, KeyLen);
try
  for i := 0 to KeyLen - 1 do
    BinKey[i] := StrToInt(StrKey[i+1]);
  GetMem(Block, KeyLen);
  try
    sfs := TFilestream.Create("SourceFile.dat", fmOpenRead);
    try
      dfs := TFilestream.Create("ResultFile.dat", fmCreate);
      try
        while sfs.Position < sfs.Size do begin
          BlockLen := sfs.Read(Block^, KeyLen);
          for i := 0 to BlockLen - 1 do
            Block[i] := Block[i] xor BinKey[i];
          dfs.WriteBuffer(Block^, BlockLen);
        end;
      finally
        dfs.Free;
      end;
    finally
      sfs.Free;
    end;
  finally
    FreeMem(BinKey);
  end;
finally
  FreeMem(Block);
end;


 
alec_sey   (2006-05-30 14:10) [7]

Cпасибо большое щас попробую



Страницы: 1 вся ветка

Текущий архив: 2006.06.18;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.039 c
15-1148369229
Kolan
2006-05-23 11:27
2006.06.18
Помогите дать определение "Интерфейс"


2-1149045797
Лыган
2006-05-31 07:23
2006.06.18
Посик


15-1148298030
Gorlum
2006-05-22 15:40
2006.06.18
Управление ISA-сервером


3-1145786456
rimdd
2006-04-23 14:00
2006.06.18
Insert into на Paradox e


15-1148657865
AlexanderMS
2006-05-26 19:37
2006.06.18
Интересное задание.