初めまして私はVB6.0の初心者でVB6.0について勉強しています。現在以下のようなiniファイル操作について分からないことがあります。
・プログラム内容
テキストボックスにログインID(例えばenshu)を入力しOKボタンを押して、iniファイル(例えばrenshu.ini)にある情報と照合してもしiniファイルに無かったら「ログインできません」というメッセージボックスを出すプログラム。
条件
・フォームにテキストボックス(Text1.Text)とコマンドボタン(OKボタン)がある
・Iniファイルの形式(renshu.ini)
IDNO(セクション名)
OK_ID(キー名)1 = “enshu”(ログインID)
OK_ID(キー名)2 = “ren”(ログインID)
OK_ID(キー名)3 = “shu”(ログインID)
上のような形式が不特定多数ある
・Iniファイルの保存場所
c:\work\renshu.ini
私の場合以下のように書きました。
Private Sub OK_Click() 'OKボタンがクリックされたら
If Text1.Text <> GetIniString("IDNO", "OK_ID", "c:\work\renshu.ini") Then '入力したログインIDがiniファイルに無い場合
'メッセージ表示
MsgBox "ログインできません"
End If
End Sub
としましたがメッセージボックスが表示されません。なぜなのでしょうか。教えてください。宜しくお願いいたします。
No.3
- 回答日時:
手元にVB6.0なんて無いので、とりあえず...
VB6.0に限らず、Visual Studio系の開発環境はデバッグモードでの動作が可能です。ソースコードの、If文の所の左端をクリックすると行が小豆色になると思うので、そのままデバッグモードで実行してみましょう。
そうすると、その行で処理が止まります(行が黄色くなるハズ)。その状態で「Text1.Text」など、変数にカーソルを合わせると、その内容が浮き出て表示されるので、実際にどういう値や文字列が入っているかを見ることが出来ます。
また、その状態で「Ctrl+G」とかを押すと、イミディエイトウィンドウというウィンドウが開きます。ここでは、その場で命令を実行させたりできます。
そこで、
?GetIniString("IDNO", "OK_ID", "c:\work\renshu.ini")
のように、先頭に「?」を付けて関数や変数を打ち込んでみてください。その内容が表示されます。なので、たとえばここで直接GetIniStringの中身をいろいろ変えながら試して、実際に何が返ってきているかということを調べる事が出来ます。
また、先頭に「?」を付けずに、
Text1.Text="あいうえお"
などと打つと、その変数やプロパティに値をいれる(内容を変える)ことも可能です。
こういうツールをうまく使いこなして、まずは自分で解決をはかりましょう。
この回答への補足
ご回答ありがとうございます。
>VB6.0に限らず、Visual Studio系の開発環境はデバッグモードでの動作が可能です
デバッグモードで実行というのは具体的にはどうすればよいのでしょうか。If文の所の左端をクリックして行が小豆色になった後実行ボタンを押せばよいのでしょうか。教えてください。宜しくお願いします。
No.2
- 回答日時:
GetIniStringはDeclare宣言した関数なのでしょうか?
VB6の標準装備の関数ではないと思いますが ・・・
GetIniStringの中身の詳細を投稿しましょう
もし WinAPIの GetPrivateProfileStringを使っているなら
キー名は OK_ID1 などの完全名が必要だろうと思いますよ
本当にGetIniStringで取得したデータと Text1.Textが同一なのかどうかを簡単にチェックするなら
Dim ss as String
ss = GetIniString("IDNO", "OK_ID", "c:\work\renshu.ini")
if Text1.Text <> ss then
といったん変数に代入しておいて比較してみましょう
この回答への補足
ご回答ありがとうございます。
以下のような感じでよろしいでしょうか。
>GetIniStringの中身の詳細を投稿しましょう
Public Function GetIniString( _
ByVal garSection As String, _
ByVal garKey As String, _
ByVal garFileName As String _
) As String
Dim llngRet As Long
Dim lstrValue As String * 255
llngRet = GetPrivateProfileString(garSection, garKey, "not found", lstrValue, 255, garFileName)
GetIniString = Left$(lstrValue, InStr(lstrValue, vbNullChar) - 1)
End Function
続けざまで申し訳ございません。
>本当にGetIniStringで取得したデータと Text1.Textが同一なのかどうかを簡単にチェックするなら
Dim ss as String
ss = GetIniString("IDNO", "OK_ID", "c:\work\renshu.ini")
if Text1.Text <> ss then
といったん変数に代入しておいて比較してみましょう
試しに上記のようにやってみたら、GetIniStringで取得したデータと Text1.Textは同一ではありませんでした。一体何が原因なのでしょうか。
No.1
- 回答日時:
(1)iniファイルの中身
セクション名は[]で囲みます。質問では裸で記述されているようです。
(2)パラグラフの指定
iniファイルではOK_ID1、OK_ID2、…なのでは?
プログラムからは"OK_ID"としか指定していません。1や2はどうなった?
ご回答ありがとうございます。
[IDNO](セクション名)
>iniファイルではOK_ID1、OK_ID2、…なのでは?
はいそうです。
OK_ID1(キー名) = “enshu”(ログインID)
OK_ID2(キー名) = “ren”(ログインID)
OK_ID3(キー名) = “shu”(ログインID)
上記のように書きたかったんです。
>1や2はどうなった?
これはOK_ID1とOK_ID2のことを言っているのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Windowsのマクロプログラムで、こんなことできますか? 3 2022/06/28 14:30
- Visual Basic(VBA) エクセルのマクロについて教えてください マクロを実行すると メッセージボックスが表示されて okをク 4 2023/07/05 19:32
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- Chrome(クローム) 入力フォームの履歴を消したい 2 2023/06/29 13:02
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/05/23 16:28
- Yahoo!メール Yahooアカウントにログインできなくなって困っています。 2 2023/05/16 02:28
- Visual Basic(VBA) Excel VBA ユーザーフォーム1のコンボボックスに別ブックの値を反映させたいです。 6 2023/03/21 16:12
- ヤフオク! ヤフーアカウントについての質問です。 「不正利用が疑われる操作もしくは行為が検知されたため、利用規約 5 2022/08/29 20:22
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
access vbaでCSVファイルを文...
-
VBAでPowerPointからExcelにデ...
-
A列をテキストファイル名に、B...
-
ソースコードの差分がある行番...
-
特定フォルダ内のテキストファ...
-
unicode文字列(日本語)のファイ...
-
テキストファイルの行頭に文字...
-
VBAで新しい日付順にファイルを...
-
複数行の文字列を変数として使...
-
cobolのコメント削除
-
フォルダ比較の結果をテキスト...
-
VB6側からテキストファイルをク...
-
日付順にテキストを開いて書き...
-
バッチでiniファイルの編集
-
Excel.VBA テキストファイルを...
-
ある文字列を含む行の抽出
-
コマンドプロンプトの「%1」と...
-
バッチでテキストファイルから...
-
コマンドプロンプトのエラーに...
-
大量のフォルダからひとつのフ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでPowerPointからExcelにデ...
-
複数行の文字列を変数として使...
-
特定フォルダ内のテキストファ...
-
VBAで新しい日付順にファイルを...
-
VB6側からテキストファイルをク...
-
テキストファイルを直接置換す...
-
RandomとBinaryモードの違い
-
Excel.VBA テキストファイルを...
-
バッチでiniファイルの編集
-
fortranでのcsvファイルを出力...
-
ある文字列を含む行の抽出
-
access vbaでCSVファイルを文...
-
テキストファイルの行頭に文字...
-
C#でのファイル編集と上書き保...
-
BCPユーティリティの使用法_...
-
unicode文字列(日本語)のファイ...
-
c言語の問題です
-
VBSを用いてIPアドレスを取得し...
-
VBAで任意のフォルダ内のファイ...
-
excelにテキストファイルの指定...
おすすめ情報