こんにちは
お返事ありがとうございます。
>こんばんは、本当に説明不足ですいません。
お気遣いありがとうございます。
但し、ほとんどが私の読解力不足です。
>1.TXTファイルですが~~~~~~感じでできますか
残念ながら、PCを購入するとき、金欠病のためエクセルは追加できませんでしたので、エクセル自体触ったことも見たこともありません。
ですので、なにをどうしていいのか全くわかりません。
大変申し訳ありません、別スレッドで質問してください。
>3.FORM1とFORM2を~~~形にしたいと思っています
FORM1にPictureBoxを貼り付けたサンプルを作成しました。
>4.下記のコードでCAD~~~角度が必要になってきます)
コードを拝見させて頂きましたが、かなり難易度が高いですね。
コピペして、動作を確認しようと思いましたが、クラスzwDrawCAD.LineDataが、掲載されてませんでしたのでどのように動作するのかわかりませんでした。(残念
FORM1にPictureBoxを貼り付けたサンプルです。
Public Class Form1
Dim i As Integer 'dataで2次元配列にするためのカウンター
Dim pint(6, 6) As Decimal '2次元配列の初期設定
Private Sub f1() Handles MyBase.Shown
TextBox2.Multiline = True 'TextBox2を広げる
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
TextBox2.Text = ""
Dim sr As System.IO.StreamReader = Nothing
'
Try
Dim file As String = " C:\VB TEXT.txt" 'ここをTextBox1.Textにしてください
'SRとは New System.IO.StreamReaderの略
sr = New System.IO.StreamReader(file, System.Text.Encoding.GetEncoding("shift_jis"))
Dim doc As String 'fileの1行
Dim x1 As String '1列目(X)
Dim y2 As String '2列目(y)
Dim x3 As String '3列目(X1)
Dim y4 As String '4列目(y2)
Dim angle As String '5列目(角度)
Dim spare As String '6列目(予備)
Dim item() As String '配列にする
'1行ずつテキストを読み取る
doc = sr.ReadLine '1行読む
Do Until IsNothing(doc) 'ここを変更してます
item = doc.Split(",") 'カンマで区切る
x1 = item(0)
y2 = item(1)
x3 = item(2)
y4 = item(3)
angle = item(4)
spare = item(5)
data(x1, y2, x3, y4, angle, spare) 'メソッドdataに値を渡す
TextBox2.Text &= item(0) & " " & item(1) & " " & item(2) & " " & item(4) & " " & item(5) & " " & vbNewLine
doc = sr.ReadLine '次の1行を読む
i += 1 'ここを通るたびに1を足す
Loop
'TEXTBOX.2にdocを代入 下記のようにするとループで毎回初期化します
' TextBox2.Text = doc
Catch ex As Exception
MessageBox.Show(ex.Message, "read")
Finally
If sr IsNot Nothing Then
sr.Close()
sr.Dispose()
End If
End Try
println() 'PictureBoxに表示するメソッド
End Sub
'2次元配列の作成 ParamArrayは引数が多い時に宣言すると、下記のように引数が param()1個ですみます
Private Sub data(ByVal ParamArray param() As String)
Dim k As Integer
For k = 0 To 5 '6列あるため6回ループする
pint(i, k) = CDec(param(k))
Next
End Sub
'PictureBoxに表示するメソッド
Private Sub println()
Dim space As New Bitmap(PictureBox1.Width, PictureBox1.Height) '描画範囲の設定
Dim g As Graphics = Graphics.FromImage(space) 'gの型設定
Dim fnt As New Pen(Brushes.Black, 5) 'フォントサイズの設定
Dim ar As Integer 'ループカウンター
For ar = 0 To 5 '線を6本引くので6回ループする
'線の表示
g.DrawLine(fnt, pint(ar, 0), pint(ar, 1), pint(ar, 2), pint(ar, 3))
Next
fnt.Dispose()
g.Dispose()
PictureBox1.Image = space 'PictureBoxに描画
End Sub
End Class
通常はCADは、C++で書きますので(実行速度が超音速のため)
VBでCADを作成するのは、かなり珍しいと思いますので、是非完成させてください。
補足
こんばんは デバックしてみようとこころがけましたが、できません、どこがいけないのでしょうか? Public Class Form1 Dim i As Integer 'dataで2次元配列にするためのカウンター Dim pint(6, 6) As Decimal '2次元配列の初期設定 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim sr As System.IO.StreamReader = Nothing Try Dim file As String = TextBox1.Text 'SRとは New System.IO.StreamReaderの略 sr = New System.IO.StreamReader(file, System.Text.Encoding.GetEncoding("shift_jis")) Dim doc As String 'fileの1行 Dim x1 As String '1列目(X) Dim y2 As String '2列目(y) Dim x3 As String '3列目(X1) Dim y4 As String '4列目(y2) Dim angle As String '5列目(角度) Dim spare As String '6列目(予備) Dim item() As String '配列にする '1行ずつテキストを読み取る doc = sr.ReadLine '1行読む Do Until IsNothing(doc) 'ここを変更してます item = doc.Split(",") 'カンマで区切る x1 = item(0) y2 = item(1) x3 = item(2) y4 = item(3) angle = item(4) spare = item(5) data(x1, y2, x3, y4, angle, spare) 'メソッドdataに値を渡す TextBox2.Text &= item(0) & " " & item(1) & " " & item(2) & " " & item(4) & " " & item(5) & " " & vbNewLine doc = sr.ReadLine '次の1行を読む i += 1 'ここを通るたびに1を足す Loop 'TEXTBOX.2にdocを代入 下記のようにするとループで毎回初期化します TextBox2.Text = doc Catch ex As Exception MessageBox.Show(ex.Message, "read") Finally If sr IsNot Nothing Then sr.Close() sr.Dispose() End If End Try println() 'PictureBoxに表示するメソッド End Sub Private Sub data(ByVal ParamArray param() As String) Dim k As Integer For k = 0 To 5 '6列あるため6回ループする pint(i, k) = CDec(param(k)) Next 'PictureBoxに表示するメソッド End Sub Private Sub println() Dim space As New Bitmap(PictureBox1.Width, PictureBox1.Height) '描画範囲の設定 Dim g As Graphics = Graphics.FromImage(space) 'gの型設定 Dim fnt As New Pen(Brushes.Black, 5) 'フォントサイズの設定 Dim ar As Integer 'ループカウンター For ar = 0 To 5 '線を6本引くので6回ループする '線の表示 g.DrawLine(fnt, pint(ar, 0), pint(ar, 1), pint(ar, 2), pint(ar, 3)) Next fnt.Dispose() g.Dispose() PictureBox1.Image = space 'PictureBoxに描画 End Sub End Class