[リストへもどる]
一括表示

投稿時間:2003/11/27(Thu) 16:55
投稿者名:やまちゃん
Eメール:
URL :
タイトル:
ファイルを読めなくするには。
はじめまして、超初心者です。
VB6を使って会員名簿を作っているのですが、名簿を保存する場合notopadなどで開くと中身が
見えてしまいます。
いろいろと試していると拡張子がdatのファイルでnotopadで開くとうまく??文字化けして中身が
見れないファイルがありました。(本体はVBで作成しソフトだと思います)
このようなファイルを作る方法はないでしょうか。
よろしくお願いします。

投稿時間:2003/11/27(Thu) 17:23
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: ファイルを読めなくするには。
多分、ランダムファイルを使っているのだと思います。
ここのファイル操作関係のランダムファイルの簡単な使用例を見て下さい。
 

投稿時間:2003/11/27(Thu) 17:35
投稿者名:やまちゃん
Eメール:
URL :
タイトル:
Re^2: ファイルを読めなくするには。
> 多分、ランダムファイルを使っているのだと思います。
> ここのファイル操作関係のランダムファイルの簡単な使用例を見て下さい。
>
花ちゃんさん、アドバイスありがとうございます。
ファイル操作関係のランダムファイルの簡単な使用例を見てそのまま作成してみたのですが
そのままnotopadで見えてしまいます。
よろしくおねがいします。 

投稿時間:2003/11/27(Thu) 18:40
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^3: ファイルを読めなくするには。
> そのままnotopadで見えてしまいます。

失礼しました。String型だと見えてしまうんですね。

投稿時間:2003/11/27(Thu) 19:28
投稿者名:ほし
Eメール:
URL :
タイトル:
Re^4: ファイルを読めなくするには。
暗号化してから保存されてはどうでしょうか?

Asc関数を利用すれば、簡単に暗号化と複号化が
できるかと思います。

投稿時間:2003/11/27(Thu) 21:16
投稿者名:やまちゃん
Eメール:
URL :
タイトル:
Re^5: ファイルを読めなくするには。
> 暗号化してから保存されてはどうでしょうか?
>
> Asc関数を利用すれば、簡単に暗号化と複号化が
> できるかと思います。
ほしさんありがとうございます。
Asc関数を使ってどのようにするのでしょうか。
もう少しヒントください。

投稿時間:2003/11/27(Thu) 23:42
投稿者名:ほし
Eメール:
URL :
タイトル:
Re^6: ファイルを読めなくするには。
暗号化の方法はいろいろありますが、
下記のA〜Cの方法を何回か組み合わせると
簡単に暗号化と複号化ができると聞いたことがあります。
(内部ロジックを知らないと、解読しにくいです)

A 文字列の反転
 例) "Abc1234" → "4321cbA"

B 奇数番目と偶数番目の文字入れ替え
 例) "Abc1234" → "bA1c324"

C 文字コードの変換
 例) "Abc1234" → "Cde3456"

AとBは問題ないと思うので、説明は省略します。

Cの文字コード変換ですが、
半角の場合、
  Chr(Asc(<<半角1文字>>) + 2) 
全角の場合、
  ChrW(AscW(<<全角1文字>>) + 4) 
のように1文字ずつ変換していけば、よいかと思います。

(Chr関数に渡す値が有効な範囲(例えば 32〜223)
 となるように調整が必要です。)

全角・半角の区別は、「文字列処理関係」を
調べてみてください。

投稿時間:2003/11/28(Fri) 01:58
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^4: ファイルを読めなくするには。
Visual Basic Station さんのところの 6.  ファイルの暗号・複合化クラス を
使用されるの一手かなと思います。
処理が結構早くて、使う段には簡単で、現状のプログラム(システム・データファイル)を
変更することなく使用できます。試して見て下さい。

http://www1.harenet.ne.jp/cgi-bin/cgiwrap/unaap/lib/libsmp.cgi

投稿時間:2003/11/27(Thu) 21:58
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re: ファイルを読めなくするには。
> いろいろと試していると拡張子がdatのファイルでnotopadで開くとうまく??文字化けして中身が
notopad ではなく、
notepad ですね。(^^;

とりあえず、一案。

コンポーネントの追加:
  Microsoft DataGrid Control 6.0 (OLEDB)

参照設定:
  Microsoft ActiveX Data Object 2.5、またはそれ以上のバージョン

フォームに貼るコントロール:
  Text1 (TextBox)
  Command1 (CommandButton)
  Command2 (CommandButton)
  DataGrid1 (DataGrid)

ソース:
Option Explicit

Private WithEvents RS As ADODB.Recordset

Private Sub Command1_Click()
    '保存
    RS.Save Text1.Text, adPersistADTG
    MsgBox "保存しました。", vbInformation
End Sub

Private Sub Command2_Click()
    '読込
    Set RS = New ADODB.Recordset
    RS.Open Text1.Text
    Set DataGrid1.DataSource = RS
    MsgBox "読み込みました。", vbInformation
End Sub

Private Sub Form_Load()
    '項目の定義
    Set RS = New ADODB.Recordset
    RS.Fields.Append "名前", adBSTR
    RS.Fields.Append "メール", adBSTR
    RS.Fields.Append "生年月日", adDate
    RS.Open

    'コントロールの設定
    'このあたりは、デザイン時に設定してもOK
    DataGrid1.AllowAddNew = True
    DataGrid1.AllowDelete = True
    DataGrid1.AllowUpdate = True
    Text1.Text = "C:\名簿.ADTG"
    Command1.Caption = "保存"
    Command2.Caption = "読込"

    Set DataGrid1.DataSource = RS
End Sub

投稿時間:2003/12/14(Sun) 11:48
投稿者名:やまちゃん
Eメール:
URL :
タイトル:
アドバイスありがとうございました。
皆様いろいろアドバイスありがとうございました。
参考にさせていただきます。