• ベストアンサー

iniファイル操作

VB6.0について質問です。 iniファイルの操作で手詰まりましたのでお知恵をおかしください! VBからiniファイルのパスを読み取りそこへデータを保存するという一連です。 実現したいことはiniファイルで指定したドライブに パス名のフォルダが存在しない場合はその指定されたフォルダを作成したい。 ということです。 少々ややこしいですがお願いします>< 現在、以下のソースで実行処理を行っていますがうまくいきません。 iniファイルに指定されたドライブにパス名のフォルダがあるか 判断するにはどうしたらいいでしょうか? wordini = INIfile_read("host", "path") If Dir(wordini)="" Then MkDir wordini End If File1.Path = wordini iniファイルのパスは D:\abc

質問者が選んだベストアンサー

  • ベストアンサー
  • KG_
  • ベストアンサー率62% (34/54)
回答No.1

あるかどうかの判断ならFileSystemObjectの FolderExistメソッドで可能です。 # ex.) Dim FS as Object Set FS = CreateObject("Scripting.FileSystemObject") IF FS.FolderExist(wordini)=False then MkDir wordini File1.Path = wordini Set FS = Nothing #動作確認はしてません、ベタ打ちです|o_o;

その他の回答 (1)

  • dee_honda
  • ベストアンサー率53% (26/49)
回答No.2

どううまくいかないのか不明なので推測しますが、 ディレクトリの存在確認であれば、 If Dir(wordini,vbDirectory)="" Then とする必要があるでしょう。 'もちろんFSOでもいいです。

関連するQ&A

  • VB6.0 Dir関数について

    VB6.0について質問です。 指定のフォルダ内にあるMDBファイル名をうまく取得できないのでお知恵をお貸しください。 最初のファイル名は取得できるのですがitem = Dirで次のファイル名を取得できないでいます。 INIfile_readでiniファイルから設定値を取得しています。 エラーメッセージは「プロシージャの呼び出し、または引数が不正です」 最初にファイル名を取得できているときにDirをウォッチ式の追加でみてみたらちゃんと次のファイル名は表示されます。 この場合どのような処理ミスが考えられますか?? path = INIfile_read("PATH", "HD") item = Dir(path & "\" & "*.mdb", vbNormal) Do While item <> "" ' ループを開始します。 date1 = Mid(item, 1, 4) & "/" & Mid(item, 5, 2) & "/" & Mid(item, 7, 2) count = DateDiff("d", date1, Date) '今日とファイル作成日との差を取得 bkup = INIfile_read("DateDiff", "DATE") 'iniファイルから削除す日数を取得 If count > bkup Then Kill (path & "\" & item) End If item = Dir Loop

  • INIファイル読み込み

    VB2005使用のものです。 INIfile_readを使ってINIファイルに記述してあるデータベース保存先を取り出したいのですが・・方法がよくわかりません; 取り出した保存先は、○○○に入れて空のデータベース作成に使いたいのです。 Dim engine As New SqlCeEngine("Data Source = ○○○.sdf") ご存知の方ご教授お願いいたします。

  • iniファイルとの比較(iniファイル操作)

     初めまして私は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 としましたがメッセージボックスが表示されません。なぜなのでしょうか。教えてください。宜しくお願いいたします。

  • powershellとiniファイル

    ps1よりiniファイルを読み込むスクリプトを作成中です。 iniファイルには以下の記載をしています。 いわゆる連想配列です。 $info = @{} $info[0] = @{ host=testest1 ip=192.168.0.0 } $info[1] = [ host=testest2 ip=192.168.0.1 } 一方、ps1は以下の通り、コードを記述しています。 $INI_PATH = @(Split-Path $script:myInvocation.MyCommand.Path -Parent).Trim() $INI_FILE = "ini_test2.ini" $INI_FULLNAME = $INI_PATH + "\" + $INI_FILE $PARAMETER = @{} Get-Content $INI_FULLNAME | %{$PARAMETER += ConvertFrom-StringData $_} $host_info = $PARAMETER.info[0] #値格納 $host_info いざ、実行すると、 「ConvertFrom-StringData : データ行 '}' の形式が '名前=値' ではありません。」、「項目は既に追加されています。」とのエラーが出ます。 どのように変えればエラーがなくなりますでしょうか。 Powershellの初歩的な質問で申し訳ないのですが、ご回答をよろしくお願いいたします。

  • INIファイルではなく、XMLを使うのですが。。。

    VB.NETでプログラムを作成しております シリアル通信の設定とオラクルのユーザー名パスを 現在 INIファイルで設定を保持してます [シリアル通信] ビット/秒= データビット= パリティ= ストップビット= フロー制御= [オラクル] ユーザー名= パスワード= 以上のような感じで INIファイルをもっているのですが。。 これをXMLファイルで 記述するとどのようになるのでしょうか? 教えて下さい

  • VB.NETでのiniファイル読込について。

    .netでのiniファイル読込がうまくいきません。 何が悪いのかさっぱりわかりません。 ご指摘お願いいたします。 環境 os :xp 開発ソフト VB.NET ver 1.1.4322 SP1 ソース Private Declare Function GetPrivateProfileString Lib "kernel32" _ Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, _ ByVal lpKeyName As String, _ ByVal lpDefault As String, _ ByVal lpReturnedString As String, _ ByVal nSize As Long, _ ByVal lpFileName As String) As Long '実行ファイルパスの取得 *VB6のapp.path Shared Function GetAppPath() As String Return System.IO.Path.GetDirectoryName( _ System.Reflection.Assembly.GetExecutingAssembly().Location) End Function Function INI_DBPATH_READ(ByVal FilePath As String) As String Dim lngRet As Long   '読み込みバッファ(固定長) Dim strGetBuff As String = 256   'iniファイルより読み込む文字列のサイズ Dim intGetSize As Integer   'セクション名 Dim strSection As String   'キー名 Dim strKey As String   '読み込みエラー時の出力文字列 Dim strErr As String   'iniファイル名(フルパス) Dim striniFn As String strGetBuff = Space(256) strSection = "TIFF_FOLDER" strKey = "PATH" strErr = "失敗" striniFn = Replace(GetAppPath(), "\bin", "\Ini") & "\test.ini" intGetSize = 256 'strGetBuffに文字列を取得する lngRet = GetPrivateProfileString(strSection, strKey, strErr, _ strGetBuff, intGetSize, striniFn) '末尾のNull除去 MsgBox(Microsoft.VisualBasic.Left(strGetBuff, InStr(strGetBuff, Chr(0)) - 1)) End Function iniファイルの内容 [TIFF_FOLDER] PATH=成功

  • batによるiniの読み込み。

    宜しくお願いします。 表題の通りなのですが、batファイルでiniを読み込み、それを基にログの出力やデータのバックアップをするには、どのようにすれば良いのでしょうか? バックアップ方法は、"robocopy"です。 以下に、現状の"bat"と"ini"を記載します。(bat内で処理させたい流れです) #####【backup.bat】##### REM iniファイルの読み込み。 REM 確認できなかったら、異常終了する。 IF NOT EXIST backup.ini ( (echo !date! !time! iniファイル[backup.ini]がありません) exit /b 16 ) REM ログの出力先フォルダチェック。 REM 指定のパスに存在しない場合は、作成する。 IF NOT EXIST %LOG%. ( mkdir %LOG% ) REM バックアップ元/バックアップ先フォルダが存在するか確認する。 REM 確認できなかったら、異常終了する。 REM 異常終了の場合、失敗ログを変数"%LOG%"に出力する。 IF NOT EXIST %FOLDER% %BK_FOLDER% ( (echo !date! !time! 対象フォルダ[%FOLDER% %BK_FOLDER%]がありません。) >> %LOG% SET RTN_CD=16 SET GOTO RTN_END ) ) REM robocopy実行 FOR /F "tokens=1,2" %%A in ('type %INI%') do ( set %FOLDER%=%%A set %BK_FOLDER%=%%B ) robocopy %FOLDER% %BK_FOLDER% /IS /MIR /COPYALL REM robocopyによるバックアップが正常終了したか確認する。 REM 正常終了した場合は、成功ログを変数"%LOG%"に出力する。 "ここはまだ分かりませんので、無視しても構いません。 もし大丈夫でしたら、ご教授お願いします。" #####【backup.ini】##### '#ログの出力先 LOG=D:\log '#バックアップ元フォルダ FORDER="M:\testfolder" '#バックアップ先フォルダ BK_FORDER="Z:\bkupfolder" です。 最近、batファイル等について独学で学び始めたばかりのため困っています。 各サイト等を参照しているのですが、どうしても上手く出来ません。 コマンド操作の理解を少しずつでも深めたいので、お手数をかけますが、ご教授を宜しくお願いします。

  • VB2008 iniファイルの指定セクション内の値のみを取得

    VB2008 iniファイルの指定セクション内の値のみを取得 VB2008でiniファイルの読込みを行いたいと思っています。 指定セクション内の値のみを取得したいのですが、自分の知る限りではキー名も一緒についてきて しまいます。 簡単に値のみを取得する方法を助言いただきたいと思います。 自分が検討した一番近かった方法は、GetPrivateProfileSection関数を使用し、キー名と値を取得。 ↑ただし、キー名はいらない。 関数で出来ればいいのですが、出来なければ、プログラミングで値のみを抜き取る方法でもいいので なるべく簡単な方法を宜しくお願いします。   

  • INIファイルへの保存について

    いつもお世話になります。 指定場所のINIファイルにウィンドウが閉じられた時の 座標位置を保存しようとしています。 API関数をMFCの中で用いたいのですが、現時点の知識量では 下記程度のソースしか思い浮かびません。 ネット上などいろいろ調べてみたのですが、 わからずじまいです。 ご教授よろしくお願い致します。 開発環境はVC++6.0MFCです。 CRect q; GetWindowRect(&q); WritePrivateProfileString("PROGRAMDATA", "WindowPlaceL", q.left,"INIファイルへのフルパス"); WritePrivateProfileString("PROGRAMDATA", "WindowPlaceT", q.top,"INIファイルへのフルパス");

  • WIN.INIって何?

    パソコンを起動すると、 「svcpack.exe 指定されたデバイス、パスまたはファイルへのアクセスは拒否されました。」 と出ます。 それで、okを押すと、次に 「WIN.INIに指定されているsvcpack.exeを読み込み、または実行できません。ファイルがあるか確認してください。またWIN.INIファイルの指定を削除してください。」 この表示をなくすには、どうしたらいいのでしょうか?

専門家に質問してみよう