掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
独自のファイル形式を定義するには? (ID:18726)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
例をあげておきます。 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Memo1: TMemo; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); private { Private 宣言 } public txt: string; end; var Form1: TForm1; implementation {$R *.dfm} const key: array[0..4] of byte =($EA, $74, $3D, $96, $3F); // 適当 procedure TForm1.FormCreate(Sender: TObject); begin txt := 'たとえば、単純にテキストをそのままセーブすると外部からエディタ'+ 'で読まれてしまいますが、何かと xor をとる単純な暗号化でもかなり'+ '読みづらくするのは簡単です。' end; // そのままテキストで保存する procedure TForm1.Button1Click(Sender: TObject); var ms: TMemoryStream; begin ms := TMemoryStream.Create; try ms.Write(txt[1], Length(txt)); ms.SaveToFile('c:\test.aaa'); finally ms.Free; end; end; // 暗号化して書き込む− テキストエディタでは読めない procedure TForm1.Button2Click(Sender: TObject); var ms: TMemoryStream; p: PByte; i: integer; begin ms := TMemoryStream.Create; try ms.Write(txt[1], Length(txt)); p := ms.Memory; for i := 0 to Length(txt)-1 do begin p^ := p^ xor key[i mod 5]; // 暗号化 inc(p); end; ms.SaveToFile('c:\test.xxx'); finally ms.Free; end; end; // 暗号化したファイルを読んで復号して表示 procedure TForm1.Button3Click(Sender: TObject); var ms: TMemoryStream; p: PByte; i: integer; s: string; begin ms := TMemoryStream.Create; try ms.LoadFromFile('c:\test.xxx'); p := ms.Memory; for i := 0 to Length(txt)-1 do begin p^ := p^ xor key[i mod 5]; // 復号化 inc(p); end; SetLength(s,ms.Size); ms.Read(s[1], ms.Size); Memo1.Text := s; finally ms.Free; end; end; end.
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.