Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.46 MB
Время: 0.005 c
14-13815
Felis manul
2002-07-10 09:28
2002.08.05
Значок Мастер Delphi


14-13820
kaif
2002-07-11 03:12
2002.08.05
Может ли хакер нарушить работу телефона?


14-13822
JohnnyJ
2002-07-09 23:37
2002.08.05
Утомленный солнцем


6-13751
Vit3128
2002-05-24 15:56
2002.08.05
Как получить имя компьютера и его название!


1-13660
Programmer1
2002-07-23 09:45
2002.08.05
Как открыть Excel в модальном режиме?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский