Форум: "Начинающим";
Текущий архив: 2006.01.01;
Скачать: [xml.tar.bz2];
ВнизБинарный вид. Представление textfile-а Найти похожие ветки
← →
Officeman (2005-12-05 15:58) [0]В своего программе использую информационную базу. база основана на текстовых файлах с разделителями. При открытии из текстовых файлов все данные грузятся в TListView, потом при сохрании - данные обновляются (полностью файл). Вопрос.
как можно закондировать . ну хоть в бинарном виде записать. а потом перед загрузкой в ListView перевести обратно в обыч.состояние.
если есть раб. примерчик. плиз. или совет. функцию какую
zeram@hotmail.ru
← →
Tonich © (2005-12-05 16:10) [1]так ё маё записывай не как в текстовый файл(writeln) а как в бинарный (BlockWrite)
← →
Officeman (2005-12-05 19:06) [2]данный пример из хелпа дельфи.
типа откываем и потом сохраняем.
но при прочмотре через бокнот. ничё не меняется.
отчётливо вижу =) буквы.
или я чтото делаю не так
procedure TForm1.Button1Click(Sender: TObject);
var
FromF, ToF: file;
NumRead, NumWritten: Integer;
Buf: array[1..2048] of Char;
begin
if OpenDialog1.Execute then { Display Open dialog box }
begin
AssignFile(FromF, OpenDialog1.FileName);
Reset(FromF, 1); { Record size = 1 }
if SaveDialog1.Execute then { Display Save dialog box}
begin
AssignFile(ToF, SaveDialog1.FileName); { Open output file }
Rewrite(ToF, 1); { Record size = 1 }
Canvas.TextOut(10, 10, "Copying " + IntToStr(FileSize(FromF))
+ " bytes...");
repeat
BlockRead(FromF, Buf, SizeOf(Buf), NumRead);
BlockWrite(ToF, Buf, NumRead, NumWritten);
until (NumRead = 0) or (NumWritten <> NumRead);
CloseFile(FromF);
CloseFile(ToF);
end;
end;
end;
end.
← →
Officeman (2005-12-06 07:22) [3]ау.
← →
ЮЮ © (2005-12-06 08:35) [4]>но при прочмотре через бокнот. ничё не меняется.
>отчётливо вижу =) буквы.
Буквы, они и в Африке - буквы. А ты чего хотел видеть?
← →
Offceman (2005-12-06 12:10) [5]Я хотел, каким-нибудь образом закрыть доступ к инф.базе (*.txt) простому пользователю. Полез он смотреть текстовые файлы. открывает, а там "абра-катабра". ну и непонимает ничё. Вот!. какокнить простой метод нужен.
Привести этот текстовый файл в непонятный вид =). а при открытии длеать его понятным для заполнения полей ListView1
← →
Anatoly Podgoretsky © (2005-12-06 14:11) [6]Offceman (06.12.05 12:10) [5]
Поместить на раздел с NTFS и отнять права у обычного пользователя.
← →
OR (2005-12-06 19:26) [7]>Привести этот текстовый файл в непонятный вид
Можно зашифровать побайтно командой XOR
← →
Officeman (2005-12-07 10:12) [8]to OR, вы чтто путаете "xor" это boolean операнд.
а если сделать смещением на 1, или писать не символы а их коды в текстовый файл. а при открытии читатьэти коды и писать буквы.
проканает? вобщем здесь можно пофантазировать =)
← →
Anatoly Podgoretsky © (2005-12-07 10:21) [9]Officeman (07.12.05 10:12) [8]
Путаешь ты
Операторы and/or/xor существуют в двух вариантах boolean (логический) и bitwise (арифметический).
← →
Officeman (2005-12-07 12:11) [10]спс. будет ковырять "справку"
← →
OR (2005-12-07 15:54) [11]Шифрование:
Author: Colin Laplace (webmaster@bloodshed.nu)
Public domain. Use this program at your own risk, and don"t use
it if you are not allowed in your country/state
}
program Crypt;
{$APPTYPE CONSOLE}
uses Windows;
var key, text, longkey, result : string;
i : integer;
toto, c : char;
F : TextFile;
begin
writeln("Enter the key:");
readln(key);
writeln("Enter the text:");
readln(text);
for i := 0 to (length(text) div length(key)) do
longkey := longkey + key;
for i := 1 to length(text) do begin
toto := chr((ord(text[i]) XOR ord(longkey[i]))); // XOR algorithm
result := result + toto;
end;
writeln("The crypted text is:");
writeln(result);
write("Should i save it to result.txt ?");
read(c);
if c in ["Y","y"] then begin
AssignFile(F,"result.txt");
Rewrite(F);
Writeln(F,result);
CloseFile(F);
end;
end.
Дешифрование:
{
Sample application of the XOR algorithm for a simple
Decrypt program
Author: Colin Laplace (webmaster@bloodshed.nu)
Public domain. Use this program at your own risk, and don"t use
it if you are not allowed in your country
}
program Decrypt;
{$APPTYPE CONSOLE}
uses Windows;
var key, c_text, longkey, result : string;
i : integer;
toto : char;
F : TextFile;
begin
writeln("Enter the key:");
readln(key);
writeln("Please make sure you have the file "result.txt" in the current directory");
// it takes the output file from Crypt.exe
AssignFile(F,"result.txt");
Reset(F);
Readln(F,c_text);
CloseFile(F);
for i := 0 to (length(c_text) div length(key)) do
longkey := longkey + key;
for i := 1 to length(c_text) do begin
toto := chr((ord(c_text[i]) XOR ord(longkey[i]))); // XOR algorithm
result := result + toto;
end;
writeln("The decrypted text is:");
writeln(result);
readln;
end.
← →
Officeman (2005-12-14 21:44) [12]to OR, да примеры хороши! при шифрофке одной строки всё рабоатет нормально. но в цикле чтото неполучается. набросал примерчик
http://zeram.hotmail.ru/Kripto.rar
форма. состоит из TLIstView и 4 кнопки.
1) загрузка в TListView из текстового файла с разделителями ";"
2) выгрузка из ListView в текстовый файл с разделителями
ну вобщем прошу помощи. написать 3 и 4 кнопку. правильно использовав процедуры 1 и 2 кнопки - вместе с обработкой "XOR".
немогу вьехать. почемуто глатаются пробелы. и не все строки РАСшифровываются !!! может что нет так делаю. если у кого будет время - ПОМОГИТЕ ПОЖАЛУЙСТА...
мне базу надо зашифровать\расшифровать. в реале не успею. =(
надо реализовать 3 и 4 кнопку, по аналогии 1 и 2 но с использованием XOR
с Уважением, ZERAM
← →
Officeman (2005-12-15 08:55) [13]Разобрался почему не работает. XOR непонимает ЦИФРЫ... ;(
Моя база состоит из строк такого вида:
15.gif;Шлем Ненависти;;;;5;45,00;0;0;+9;0;0;+4;0;0;0;0;0;+20;0;+20;0;0;0;0;+35;0;0;0;0;Шлемы;
4.gif;Амулет Достоинства;;;;3;15,20;0;0;+5;0;+4;0;0;+15;0;0;0;+20;0;0;0;0;0;0;0;0;0;0;0;Амулеты;
17.gif;Панцирь Мужества;;;;3;15.10;0;0;+6;0;0;+2;0;0;0;0;0;+15;0;0;0;0;0;0;0;+25;0;0;0;Латы;
включающая буквы и цифры. цмфры тоже надо ШИФРОВАТЬ вместе с текстом. хотя я щас думаю что можно впринципе и не шифровать цифры.
но если есть вариант ШИФРОВАТЬ ВСЁ ВМЕСТЕ. подскажите =)
с Уважением, Officeman
← →
alex_*** © (2005-12-15 09:37) [14]а тебе не пофиг что за текст ты шифруешь? цифра-не цифра это переменная в 1 байт ну и прогони по ней XOR
← →
Officeman (2005-12-15 14:52) [15]т.е. ты предлагаешь перевести всё в бинарный вид,
и потом прогнать через XOR .. ??? или как ?
помучто она не признает ЦИФРЫ.. как только встречается на пути [i]
цифра. сразу прерывается цикл
← →
Хинт © (2005-12-15 15:01) [16]Что значит перевести в бинарный вид? В зависимости от интерпритации один байт может быть буквы или числом от 0 до 255.
Используй Ord и Chr
← →
Anatoly Podgoretsky © (2005-12-15 15:10) [17]О каких текстовых файлах может идти речь, ведь в результате шифрования получаются все коды от 0 до 255
← →
Officeman (2005-12-16 08:04) [18]используя ключ, получаю из строки
15.gif;Шлем Ненависти;;;;5;45,00;0;0;+9;0;0;+4;0;0;0;0;0;+20;0;+20;0;0;0;0;+35;0;0;0;0;Шлемы;
такую
15.gif;йЫЦЭЯФФЮКЩ;;;;5;45,00;0;0;+9;0;0;+4;0;0;0;0;0;+20;0;+20;0;0;0;0;+35;0;0;0;0;Шлемы;
я шифровал, только НАИМЕНОВАНИЕ. хотелось бы всё зашифровать.
конечно можно сделать собственную табличку, присвоить каждой цифре какойнить символ"букву" и пришифровании заменять. =)) но както глупо это.
← →
ЮЮ © (2005-12-16 08:30) [19]>я шифровал, только НАИМЕНОВАНИЕ.
Как?
>хотелось бы всё зашифровать.
Сделай тоже самое только для всей строки!
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.01.01;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.01 c