Форум: "Основная";
Текущий архив: 2002.08.05;
Скачать: [xml.tar.bz2];
ВнизКодирование файла Найти похожие ветки
← →
иван (2002-07-23 14:32) [0]Есть файл на диске С: 1.тхт шрифт у него нормальный, а как сделать так, чтобы то что в нем написано не было понятно (т.е. закодировать, шифровать и тд). Заранее благодарен.
← →
Viewer (2002-07-23 14:43) [1]О ! Если шрифт нормальный тогда все просто..
Напиши две таблицы (массива) со всеми символами алфавита
Одна нормальная, другая перемешенная
Символ из текста находи в первой и по аналогичному индексу меняй на символ из второй.
На первый раз достаточно.
← →
иван (2002-07-23 14:55) [2]Viewer!!!! А на примерчике можно...Спасибо!
← →
Viewer (2002-07-23 15:14) [3]Если ты программист - сказанного достаточно.
А если нет - то и примера мало.
si - входная строка
so- выходная строка
s1 := "ABCDEFGH..XYZ";
s2 := "EFGH..XYZABCD"; // сдвиг на 4-ре символа
Цикл по строке
j := pos(si[i],s1);
if j>0 then so[i] := s2[j];
← →
VID (2002-07-23 15:23) [4]UBPFD. Подраздел "Шифрование строк".
http://delphibase.endimus.com/?action=viewtopic&topic=strcode
← →
Skier (2002-07-23 15:25) [5]>иван
Лови класс для кодирования/декодирования файла
(by Marco Cantu)
unit EncodStr;
interface
uses
Classes;
type
TEncodedStream = class (TFileStream)
private
FKey: Char;
public
constructor Create(const FileName: string; Mode: Word);
function Read(var Buffer; Count: Longint): Longint; override;
function Write(const Buffer; Count: Longint): Longint; override;
property Key: Char read FKey write FKey default "A";
end;
implementation
constructor TEncodedStream.Create(
const FileName: string; Mode: Word);
begin
inherited Create (FileName, Mode);
FKey := "A";
end;
function TEncodedStream.Write(const Buffer;
Count: Longint): Longint;
var
pBuf, pEnc: PChar;
I, EncVal: Integer;
begin
// allocate memory for the encoded buffer
GetMem (pEnc, Count);
try
// use the buffer as an array of characters
pBuf := PChar (@Buffer);
// for every character of the buffer
for I := 0 to Count - 1 do
begin
// encode the value and store it
EncVal := ( Ord (pBuf[I]) + Ord(Key) ) mod 256;
pEnc [I] := Chr (EncVal);
end;
// write the encoded buffer to the file
Result := inherited Write (pEnc^, Count);
finally
FreeMem (pEnc, Count);
end;
end;
function TEncodedStream.Read(var Buffer; Count: Longint): Longint;
var
pBuf, pEnc: PChar;
I, CountRead, EncVal: Integer;
begin
// allocate memory for the encoded buffer
GetMem (pEnc, Count);
try
// read the encoded buffer from the file
CountRead := inherited Read (pEnc^, Count);
// use the output buffer as a string
pBuf := PChar (@Buffer);
// for every character actually read
for I := 0 to CountRead - 1 do
begin
// decode the value and store it
EncVal := ( Ord (pEnc[I]) - Ord(Key) ) mod 256;
pBuf [I] := Chr (EncVal);
end;
finally
FreeMem (pEnc, Count);
end;
// return the number of characters read
Result := CountRead;
end;
end.
← →
Viewer (2002-07-23 16:29) [6]Вот так "знания" и распространяются.
Чему удивляться..
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.08.05;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.004 c