2016-12-24 5 views
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 
+0

デリミタに起因する問題は、実際にはソースはCSV(カンマ区切りの値)であり、これはデフォルトのものですADO、[ADOについてのテキストファイル](https://msdn.microsoft.com/en-us/library/ms974559.aspx)をご覧ください – omegastripes

+0

テキストファイルのタブ区切りですか? @omegastripesあなたのコメントを回答として投稿してみませんか?あなたのように見えます。 – ChipsLetten

答えて

0

ご返信いただきありがとうございます。私はこの質問に最後までお答えすることができました。後で私が知る限り、実際にコードに問題はなかった。

関連する問題