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

Вниз

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

 
иван   (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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.013 c
1-13665
EugenCFG
2002-07-18 23:10
2002.08.05
RichEdit... CheckListBox


8-13724
Master Denis
2002-03-27 15:58
2002.08.05
Как подобраться к видео и аудио кодекам?


3-13557
zomba
2002-07-16 08:41
2002.08.05
TreeView


14-13784
ProfiUgl
2002-07-10 11:26
2002.08.05
Достойное описание работы с СОМ - серверами


6-13741
Dup
2002-05-08 08:50
2002.08.05
Indy Pop3