• ベストアンサー

INIファイル読み込み

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

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

  • ベストアンサー
noname#221739
noname#221739
回答No.3

1 の回答に補足するならば。 指定した [INIファイル名]の、[セクション名]に[キー名]が存在しなかった場合の“デフォルト値”をなんらかの方法で指定した方が安全ですね。 でも。Microsoft からは .NET では ini ファイルではなく、configファイルを使ってくれ、との推奨が出てますけど。 他にも、Enterprise Library を使えば、Windows Form アプリでもセッション変数を使えるようだし。↓ http://www.atmarkit.co.jp/fdotnet/entlib/index/index.html ※セッション変数が使えたら、同一の SLN ファイル内の別 EXE に対して、セッション変数を介して、Login情報を引き継げるし。iniファイルに一旦書き込む必要もなくなるだろうし。

参考URL:
http://www.atmarkit.co.jp/fdotnet/entlib/index/index.html
quinted_sa
質問者

お礼

返信が遅れてしまい大変申し訳ありませんでした; APIを利用して解決できました! iniを絶対使わなくてはいけなかったので・・ また機会があればconfigファイルの方を採用したいと思います! ありがとうございました!

その他の回答 (2)

  • dsuekichi
  • ベストアンサー率64% (171/265)
回答No.2

私も、「INIfile_read」と言うのは、知りませんね・・・ VBやMicrosoftの純正品じゃないですよね? だとすると、先ずは「入手」からはじめる必要があると思いますけど・・・ とりあえず、ネットで調べてみましたが、それっぽい情報は見つかりませんでした。 たまに、掲示板の質問にあがってたりしますが、何の説明も無しで使われていました。 ひょとして、有名なライブラリなんでしょうか? #もし、入手済なら、入手先を教えてもらえませんか? > 方法がよくわかりません; ある程度は分かっているんでしょうか? どこが分かっていて、どこら辺が分からないんでしょう? 使い方の説明とか無いんでしょうか?

quinted_sa
質問者

お礼

返信が遅れてしまい大変申し訳ありませんでした; APIを利用して解決できました! INIfile_readの件ですが・・ 私も掲示板の質問などを見て存在するライブラリだと 思っていたのですが、どうやら”個人で作られたもの” というのが有力見たいです; 回答ありがとうございました

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

INIfile_readって ユーザー定義関数ですか? VBの機能や .NET Framework、 .NET Compact Frameworkなどには無いようですけど... やりたいことから想像すると INIファイル名、セクション名とキー名などを引数にとって 設定値を返す関数だろうと思います Dim sValue = Inifile_read("INIファイル名", "セクション名", "キー名") dim engne As New SqlCeEngine("Data Source=" & sValue & ".sdf") といった具合でしょう ...

quinted_sa
質問者

お礼

返信が遅れてしまい大変申し訳ありませんでした; APIを利用して解決できました! 上記にも書いたとおり、INIfile_readの件ですが・・ どうやら”個人で作られたもの”というのが有力みたいです; 結構検索でひっかかったのでてっきり存在するライブラリだと 勘違いしてしまいました; 回答ありがとうございました。

関連するQ&A

  • 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=成功

  • .NET MDBデータベース更新について質問です

    DataGridViewで表示するところまでできたのですが DataGridView上で編集したものを更新ボタンで MDBデータベースに上書き保存という形で 行いたいのですがいろいろ調べてもわかりませんでした。 VBを初めて日が浅いのでこつこつ勉強中なのですが 業務上の都合でDBの作成を行っています。 基本的に書き直したもの 'データベース取得 Dim Cn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=保存場所" ) Dim Cm As OleDbCommand = Cn.CreateCommand Dim Adapter As New OleDbDataAdapter(Cm) Dim Table As New DataTable Cn.Open() Cm.CommandText = "SELECT * FROM Aテーブル" Adapter.Fill(Table) DataGridView1.DataSource = Table DBにはこのように接続しております。 ここまでも手探りで行ったので熟練の方から見ればへんかもしれませんが指導おねがいします。

  • 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

  • VB2005でMDBに接続方法

    お世話になります。 VB2005でアクセスに接続したいのですが、 よく理解できません。 こんな感じで、ネットで見たのを 記述したのですが、なんかエラーになります。 VB6みたいに参照設定が必要なのでしょうか? (記述例) Dim Cn As New OleDbConnection  ↑で警告?になる。 ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\データ.mdb") Dim SQLCm As OleDbCommand = Cn.CreateCommand ↑参照コンポーネントがみつかりませんでした。 と怒られます。 宜しくお願いいたします。

  • ADO.NETのDataSetのコピー

    ADO.NETでsdfファイルからmdbファイルへテーブル(TBL1)を移行させたいと思っています。 以下のようなコードでDataSetをコピーできないか試しましたが、移行できません。 sdf、mdbともテーブルのカラムの構造は同一です。 mdbの方にはレコードが空のテーブルが用意してあります。 何が間違っているのでしょうか?お教えいただけると助かります。 SDF Dim con As SqlCeConnection = DBUtility.GetConnection() con.Open() Dim strSQL As String strSQL = "select * from TBL1" Dim adapter As SqlCeDataAdapter = _ New SqlCeDataAdapter(New SqlCeCommand(strSQL, con)) con.Close() Dim ds1 As DataSet = New DataSet() adapter.Fill(ds1, "TBL1") Dim con2 As OleDbConnection = DBUtility.GetOLEConnection() con2.Open() 'MDB Dim strSQL2 As String strSQL2 = "select * from TBL1" Dim adapter2 As OleDbDataAdapter = _ New OleDbDataAdapter(New OleDbCommand(strSQL2, con2)) Dim ds2 As DataSet = New DataSet() ds2 = ds1.Copy Dim cb As OleDbCommandBuilder = New OleDbCommandBuilder(adapter2) adapter2.Update(ds2, "TBL1")

  • iniファイルの全セクションを取得し、ListBoxのitemにするには?VB2008

    こんにちは。VB2008を使用しています。 「Formロード時にiniファイルの全セクションを取得し、セクション1つずつをlistboxの項目にする」 という流れのコードを作成したいのですが、うまくいきません。 似たような質問などを調べてつぎはぎしてみたものの、うまく理解できなく困っています。 以下、現在記述中のコードです。 'APIの宣言 Declare Function GetPrivateProfileSectionNames Lib "Kernel32.dll" _ Alias "GetPrivateProfileSectionNamesA" _ (ByVal lpszReturnBuffer As string, ByVal nSize As Integer, _ ByVal lpFileName As String) As String 'form1ロード時 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim listboxsec As String Dim listboxitem() As String listboxsec.Capacity = 256 GetPrivateProfileSectionNames(listboxsec, 256, "./FileTest.ini") listboxitem = Split(listboxsec, "\") End Sub 最初の全セクションの取得方法がイマイチ分からない状況です。iniファイルは実行プログラムと同じ場所においてあります。 取得したセクションをSplitで配列に分け、for文でlistboxに追加していこうかと考えています。 どのような記述をすればいいのか、ご教示お願いいたします。

  • CSVファイルの出力に関して

    環境:Windows7 / VIsual Basic 2008 教えて下さい。 データベースの値を、CSVファイルとして出力する為に、以下のような記述を しましたが、どうしても下記のようなエラーとなってしまいます。 Cドライブの直下は記述すべきでなく、アクセス権がないのが原因かと思われますが、 なんとかCドライブの直下へ出力したいと考えています。 良い方法はないでしょうか? 《記述内容》  '保存先のCSVファイルのパス  Dim csvPath As String = "C:\ABC.csv"  'CSVファイルに書き込むときに使うEncoding  Dim enc As System.Text.Encoding = _  System.Text.Encoding.GetEncoding("Shift_JIS")  Try '開く Dim sr As New System.IO.StreamWriter(csvPath, False, enc)  Dim colCount As Integer = dtTable.Columns.Count   Dim lastColIndex As Integer = colCount - 1  以下省略・・・ 《エラー内容》  パス 'C:\ABC.csv' へのアクセスが拒否されました。 仮にアクセス権を付加するしか方法がないようであれば、申し訳ありませんが、 その方法も教えて頂ければと思います。 教えて下さい。 よろしくお願いします。

  • VB2008 iniファイルの全セクション取得方法

    こんばんわ。iniファイルの全セクションを取得したく、 以下のコードを使うことはわかったのですが、ここから先がVB初心者の為全く解かりません。ボタン1を押したらC:\Test.ini のファイルの全セクションを取得というコードはどのように記入すればよいのでしょうか。 どうぞ宜しくお願いいたします。 Declare Function GetPrivateProfileSectionNames Lib "Kernel32.dll" _ Alias "GetPrivateProfileSectionNamesA" _ (ByVal lpszReturnBuffer As String, ByVal nSize As Long, _ ByVal lpFileName As String) As Long

  • テキストファイルを保存しきれない

    いつもありがとうございます。 iniファイルを置換して上書き保存するのですが、置換して保存すると保存後のファイルの最後のほうが切れて保存しきれていませんでした。 保存前→100行 保存後→80行 な感じです。コードが悪いんだと思いますが、どなたか教えていただけないでしょうか。 Dim FileObj13 As Object Dim ListFile13 As String Try FileObj13 = New IO.StreamReader(Foldername & "\CUS\UISetup.ini", System.Text.Encoding.Default) ListFile13 = FileObj13.ReadToEnd() FileObj13.Close() Catch ex As Exception MessageBox.Show("指定のファイルが見つかりません", "エラー", _ MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub End Try '置換 ListFile13 = ListFile13.Replace("K", "G") ListFile13 = ListFile13.Replace("C5", "45") 'ファイルを上書きで保存するための指定 Dim writer13 As New System.IO.StreamWriter(Foldername & "\CUSUISetup.ini", False, System.Text.Encoding.Default) writer13.Write(ListFile13) Label2.Text = "完了"

  • VB2005で、ファイル操作 VB6から触っていないので感覚がいまいち。

    VB2005で、ファイルを読み込み2行目から10行までを別ファイルに吐き出すコードがわからないのですが、 わかる方教えていただますか? 途中まではできたのですが、後がわかりません。 よろしくお願いいたします。 また、VB2005でわかりやすい書籍など紹介していただけましたら助かります。 'ファイルを開く Dim fs As New System.IO.FileStream(fileName, _ System.IO.FileMode.Open, System.IO.FileAccess.Read) 'ファイルを読み込むバイト型配列を作成する Dim bs(fs.Length - 1) As Byte 'ファイルの内容をすべて読み込む fs.Read(bs, 0, bs.Length) '閉じる fs.Close() ....[改行をLFとした場合に2行から10行目の内容を別のファイルに書き出すコード]

専門家に質問してみよう