Главная страница
    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.45 MB
Время: 0.004 c
1-13598
chips
2002-07-24 17:17
2002.08.05
как между операторами сделать задержку в пол секунды


14-13805
skiph
2002-07-09 11:36
2002.08.05
Update


3-13562
Radimir
2002-07-16 09:19
2002.08.05
не работает Insert


1-13646
Kudatsky
2002-07-22 10:13
2002.08.05
Delphi 5 не реагирует на ошибки с плавающей точкой


3-13547
flider
2002-07-12 13:09
2002.08.05
Убить DataSet





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский