0
私は、テキストファイルから配列(たくさんの行と3列)を持つADOレコードセットを持っています。 CATIAでパートのポイントを形成するためにレコードごとに各価値を試してきましたが、仕事を拒否しています。数値を整数ではなく文字列として読み込みます。例えば、私はファイルを持っています。ADOレコードセットの値を使ってcatia vbaでポイントを作る
**coordinates.txt**
70 60 30
20 30 40
50 12 33
あなたはインスタンスの最初の値(70)を取得しようとするので、
Value= rsTest.GetRow
value1= Value(0,0)
ので、代わりの70
を使用することによって、それはので、それはまたしvalue1= "70 60 30"
を示す文字列として行全体を取ります2番目と3番目の列は別々のフィールドとして読み込まず、すべて1列目(3
の代わりにfields = 1
の意味番号)を読み込まないでください。
完全なコードは以下のとおりです。
Sub LoadFile()
Dim connCSV As New ADODB.Connection
Dim rsTest As New ADODB.Recordset
Dim adcomm As New ADODB.Command
Dim path As String
Dim Value As Variant
path = "C:\Users\hadiza\Documents\MATLAB\"
'This is connection for a text file without Header
connCSV.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & path & ";" & _
"Extended Properties=""text;HDR=YES;FMT=Delimited"""
rsTest.Open "Select * From coordinates.txt", _
connCSV, adOpenStatic, adLockReadOnly, adCmdText
'Get CATIA DOCUMENT
Dim partDocument1 As PartDocument
Set partDocument1 = CATIA.ActiveDocument
Dim part1 As Part
Set part1 = partDocument1.Part
Dim hybridShapeFactory1 As HybridShapeFactory
Set hybridShapeFactory1 = part1.HybridShapeFactory
'Loop through points
For i = 0 To (rsTest.RecordCount)
rsTest.MoveFirst
Value = rsTest.GetRows
value1 = Value(0, i)
value2 = Value(1, i)
value3 = Value(2, i)
Dim hybridShapePointCoord1 As HybridShapePointCoord
Set hybridShapePointCoord1 = hybridShapeFactory1.AddNewPointCoord(value1, value2, value3)
Dim bodies1 As Bodies
Set bodies1 = part1.Bodies
Dim body1 As Body
Set body1 = bodies1.Item("PartBody")
body1.InsertHybridShape hybridShapePointCoord1
part1.InWorkObject = hybridShapePointCoord1
part1.Update
Next
' MsgBox ("The number of records is: " & i)
rsTest.Close
connCSV.Close
End Sub
デリミタに起因する問題は、実際にはソースはCSV(カンマ区切りの値)であり、これはデフォルトのものですADO、[ADOについてのテキストファイル](https://msdn.microsoft.com/en-us/library/ms974559.aspx)をご覧ください – omegastripes
テキストファイルのタブ区切りですか? @omegastripesあなたのコメントを回答として投稿してみませんか?あなたのように見えます。 – ChipsLetten