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

Вниз

Бинарный вид. Представление 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;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.026 c
8-1122562004
olorint
2005-07-28 18:46
2006.01.01
256 цветов


8-1122797191
cava
2005-07-31 12:06
2006.01.01
mediaplayer


14-1133889193
Kerk
2005-12-06 20:13
2006.01.01
Самый слабый по составу чемпионат мира в истории


14-1133982665
Kerk
2005-12-07 22:11
2006.01.01
Я не люблю праздники. А вы?


6-1126136986
ANTOXA2005
2005-09-08 03:49
2006.01.01
Подскажите, как послать запрс приложению, запущенному на другом к