簡単な部品表を図面に添付して部品表の内容を保存します。
データ処理クラスの作成
入門のプログラムですが、やはりC#やVB.NETはオブジェクト指向ですのでデータの処理
は専用のクラスで処理することにします。クラスの扱いはみなさんはよくご存じだと思いますので
特に解説はしません。クラス名は「fildata」にします。
「Class fildata」の構成
「Class SolidWorksMacro」から渡された値をcsv形式でファイルに保存します。
ファイル名は「partdata.csv」にします。コードは複数のプロシージャで利用できるように
フィールドに記述します。
Const FILE_PAS
As String =
「Class SolidWorksMacro」から引数を利用してリストごと値を受け取ります。
Public Sub writfle(
ByVal lst
As Collections.Generic.List(
Of String))
リストになっていますので「For Each」を使ってファイルに書き込みます。ファイルに書き込む
ためのメソッドは「wrter(st)」です。
For Each st
As String In lst
wrter(st)
NextFor Each
st
As String In lst
wrter(st)
Next
ファイルに書き込む際に前回のファイルが存在していると、前回のデータの下に今回の
データが追加されてしまいますので、削除しておきます。
If
IO.File.Exists(Application.StartupPath & FILE_PAS)
Then
IO.File.Delete(Application.StartupPath & FILE_PAS)
End If
csvファイルは別のプログラムで使用しますのでパスを取得しておきます。
Public Sub getpas()
_ps = Application.StartupPath & FILE_PAS
End Sub
パスはプロパティで読み取りますので変数をフィールドに置いてください。
Shared _ps
As String
「Visual Studio」では必要がありませんがどこかで下記の分が必要です。
Imports System.Windows.Forms
このプログラムは次のページで「クラスライブラリ」として使用しますので
「ビルド」して保存してください。この操作は「Visual Studio」と同じです。
「Class fildata」の全文です。
Imports System.Windows.Forms
Public Class
fildata
Const FILE_PAS
As String = "\partdata.csv"
Shared
_ps As String
Public Sub writfle(
ByVal lst
As Collections.Generic.List(
Of String))
'ファイルが存在する場合は削除
If
IO.File.Exists(Application.StartupPath & FILE_PAS)
Then
IO.File.Delete(Application.StartupPath & FILE_PAS)
End If
'ファイルに書き込み
For Each st
As String In lst
wrter(st)
Next
End Sub
Private Sub
wrter(ByVal
txt As String
)
Dim writer
As New
IO.StreamWriter(Application.StartupPath & FILE_PAS,
True)
writer.WriteLine(txt)
writer.Close()
End Sub
'他のプログラムで利用する
Public Sub getpas()
_ps = Application.StartupPath & FILE_PAS
End Sub
'他のプログラムで利用する
Public ReadOnly Property
ps() As String
Get
Return
_ps
End Get
End Property
End Class
今回はデータ処理専用のクラスを作成しました。
「Application.StartupPath」のパスが私の環境では(win7x64bit)
「C:\Program Files (x86)\Common Files\microsoft shared\VSTA\8.0\x64」
になっています。「Visual Studio」の場合と違うため注意が必要です。
次のページでは部品図で今回作成したcsvファイルの活用方法を見ましょう。