Главная страница
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.036 c
2-1148978422
De
2006-05-30 12:40
2006.06.18
динамические массивы


8-1137193431
rd
2006-01-14 02:03
2006.06.18
disparity map


15-1148306865
ПЛОВ
2006-05-22 18:07
2006.06.18
Знатокам мобильной связи (Украина)


1-1147332028
leonidus
2006-05-11 11:20
2006.06.18
Как отображать в TLabel русский, испанский и английский текст?


2-1149045856
Рахимжан
2006-05-31 07:24
2006.06.18
Работа с двоичными файлами