Форум: "Начинающим";
Текущий архив: 2006.06.18;
Скачать: [xml.tar.bz2];
ВнизШифрование файлов Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.012 c