C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[5]: 【VB.NET】CSVファイルの読み込み→活用


(過去ログ 118 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■69360 / inTopicNo.1)  【VB.NET】CSVファイルの読み込み→活用
  
□投稿者/ T.S (1回)-(2013/12/19(Thu) 13:41:43)

分類:[VB.NET/VB2005 以降] 

VB.NET初心者につき、大変恐縮ですが問題解決に向けて助言をお願い致します。

手順として、まずは下記のようなCSVファイル(image.csv)をDataTableを用いた構文でVBファイル内に読み込みます。

ID,Item
1,3.jpg
2,4.jpg
3,5.jpg

次にSQL形式でDataTableから一行目を項目として(HDR=Yes)表を呼び出し(MsgBox等で実際に表示はさせません)、あらかじめ用意してあるVB主体アプリケーションのページの中にある画像詳細番号(1、2、3、…)という表記+テキストボックス(画像が格納されているディレクトリ(Z:database/item/3.jpg の様な感じに外部のサーバーから画像を参照しています)を入力する)に表の内容をリンクさせて表示させるというのが目的です。(元々は例として3.jpgが画像詳細番号3のテキストボックスに格納されるといった仕様でしたが、これからはCSVファイル内のID番号と画像詳細番号を連動させて管理するというのが狙いです。)

CSVファイルの格納場所は(Z:database/item/image.csv)とします。

参考として、下記に元々使用している画像をセットするための構文を記載致します。



''' <summary>データをフォームにセット(統合)</summary>
''' <returns></returns>
''' <remarks></remarks>
Private Function setItem(ByVal item_unique_id As String) As Boolean
LogClass.Trace(LogClass.LogLevel.Debug, "setItem(item_unique_id:" & item_unique_id & ")")

Try
Dim new_flg As Boolean = False

new_flg = If(Me.setCmnItem(item_unique_id), new_flg, True)
new_flg = If(Me.setRktAItem(item_unique_id), new_flg, True)
new_flg = If(Me.setRktBItem(item_unique_id), new_flg, True)
new_flg = If(Me.setYhoItem(item_unique_id), new_flg, True)
new_flg = If(Me.setFtrAItem(item_unique_id), new_flg, True)
new_flg = If(Me.setFtrBItem(item_unique_id), new_flg, True)
new_flg = If(Me.setBdsItem(item_unique_id), new_flg, True)
new_flg = If(Me.setAmzItem(item_unique_id), new_flg, True)
new_flg = If(Me.setPnpItem(item_unique_id), new_flg, True)

If new_flg Then
Me.btn_F12.Text = "登録"
Me.btn_F12.Enabled = True
Else
Me.btn_F12.Text = "登録"
Me.btn_F12.Enabled = True
End If

Catch ex As Exception
Return False
End Try

'画像のセット
Try
Dim btnImageList As Dictionary(Of String, List(Of Button)) = Me.getBtnImageList()
For Each key As String In btnImageList.Keys
Dim btnList As List(Of Button) = btnImageList(key)
Dim dir As String = Me.cmnProp.FtpNetworkDrive & "/" & Me.getSaveImageDir(key)
If Not System.IO.Directory.Exists(dir) Then
Return True
End If
dir &= "/" & item_unique_id
If Not System.IO.Directory.Exists(dir) Then
Return True
End If

Dim files As String() = System.IO.Directory.GetFiles(dir)
For Each file As String In files
Dim item_brach As String = System.IO.Path.GetFileNameWithoutExtension(file)
If IsNumeric(item_brach) AndAlso btnList.Count >= item_brach Then
Me.setCtlImageInfo(btnList(CInt(item_brach) - 1), file.Replace("\", "/"))
End If
Next
Next
Catch ex As Exception
LogClass.Trace(LogClass.LogLevel.Err, "画像読込エラー", ex)
End Try
Return True
End Function


必要に応じて情報を追記させて頂きます。

何卒宜しくお願い申し上げます。
引用返信 編集キー/
■69362 / inTopicNo.2)  Re[1]: 【VB.NET】CSVファイルの読み込み→活用
□投稿者/ kaina (4回)-(2013/12/19(Thu) 14:09:13)
あなたが書いた文章の中には質問が無いようですが、
一度何が聞きたいか整理してはいかがでしょうか。

下記URLにあるこの掲示板の利用方法や他の方が投稿した内容を読んで見て、
回答者にどのような情報を提示すればよいか考えて下さい。

http://bbs.wankuma.com/index.cgi?mode=man

引用返信 編集キー/
■69363 / inTopicNo.3)  Re[2]: 【VB.NET】CSVファイルの読み込み→活用
□投稿者/ T.S (3回)-(2013/12/19(Thu) 14:48:49)
大変失礼致しました。

具体的な質問内容に関してですが、先程記載させて頂いたFunction内部にCSVを読み込む文章をOleDb等を用いて構築し、それを"'画像のセット"以降の文章に書き換える若しくは書き加えるための構文をご教授頂きたいのです。

CSVファイルを参照するディレクトリに関しても"C:\○○○\△△△\"のように直接場所を指定する書き方ではなく、上記の

Dim dir As String = Me.cmnProp.FtpNetworkDrive & "/" & Me.getSaveImageDir(key)
If Not System.IO.Directory.Exists(dir) Then
Return True
End If
dir &= "/" & item_unique_id
If Not System.IO.Directory.Exists(dir) Then
Return True
End If

といったようなアプリケーションの動作に応じて自動で取得する仕様を目指した構文の書き方を重点的にご教授いただければと。

構文の書き方のルールに関しても理解度が乏しく、詳しく説明が出来ず申し訳ありません。

ご面倒ではございますが、出来る限りで構いませんので改めましてお願い申し上げます。
引用返信 編集キー/
■69366 / inTopicNo.4)  Re[3]: 【VB.NET】CSVファイルの読み込み→活用
□投稿者/ WebSurfer (138回)-(2013/12/19(Thu) 15:41:35)
No69363 (T.S さん) に返信
> 具体的な質問内容に関してですが、先程記載させて頂いたFunction内部にCSVを読み込む文章をOleDb等を用いて構築し、

まず上記の部分についてですが、CSV パーサーを使ってはいかがですか? 

以前のスレッド ↓ に同じような話がありましたので、参考になるのでは?

http://bbs.wankuma.com/index.cgi?mode=al2&namber=69017

引用返信 編集キー/
■69368 / inTopicNo.5)  Re[4]: 【VB.NET】CSVファイルの読み込み→活用
□投稿者/ Hongliang (144回)-(2013/12/19(Thu) 15:51:51)
OleDbとかわざわざ挙げられているところを見ると、ある程度検索はされていると思うんですよ。
サンプルコードもいくらでも引っかかると思います。というかoledb csvってキーワードでBing検索したらトップにVBのサンプルが引っかかりました。
それらはご覧になっていないのでしょうか?

> アプリケーションの動作に応じて自動で取得する仕様を目指した構文の書き方
そのアプリの要求仕様次第としか言えません。
強いて言うならSystem.IO.Pathクラスの各メソッド、特にCombineメソッドを使えばパスの合成が簡単ですよってぐらいです。
引用返信 編集キー/
■69371 / inTopicNo.6)  Re[5]: 【VB.NET】CSVファイルの読み込み→活用
□投稿者/ kaina (5回)-(2013/12/19(Thu) 17:28:04)
>アプリケーションの動作に応じて自動で取得する仕様を目指した構文の書き方

Hongliangさんが書かれている通り、要求仕様次第ですが、
構成ファイルにフォルダパスを設定しておき、環境に応じて
変更出来るようにしたい場合はアプリケーション構成ファイルを
利用するといいです。

http://support.microsoft.com/kb/313405/ja

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -