投稿者 はち  (社会人) 投稿日時 2021/10/18 12:12:28
対応いただきありがとうございます。
当方の情報が不明確で申し訳ありません.下記のようなデータを読み込もうとしております.
下記のようなVB6の命令文でファイルに書き込まれた下記のようなデータを読み込もうとしております.
Print #1, X(DT), Y(DT), U1(DT), -U2(DT)・・・実際は半角文字

30.34137       37.00964      0.766        -0.116 
 15.51356      36.96014      8.699         0.717 
 33.5104        36.91454      8.216         0.461 
-2.653893      36.87263      12.746     -0.426 
 実際のデータの行頭はすべてそろっております.
配列の番号が0ではないのは,私の癖で1から配列をしようしています.VB.NETでは0からはじめるのであればそれに従う必要がありますね.
配列の数ですが,VB6では,想定して適当な大きさの配列を宣言しておりました.VB6で作成したプログラムであれば,以下のようにしておりました.
Dim X(20000000) As Single
Dim Y(20000000) As Single
Dim UD1(20000000) As Single
Dim UD2(20000000) As Single
今回お示しいただいた,プログラムはデータの個数を予めカウントし,それを用いて配列宣言をするのですね.
頂いたプログラムをコピペ―ストして,適当に変えさせていただきました.その結果,いくつかのコマンドに赤の波下線がついており,エラー?なのかと思われます.
ご教示いただければ幸いです。よろしくお願いいたします。

 'ファイル名と文字コードは適宜修正してください 
        Dim fileName As String = Label2.Text
        Dim enc As Encoding = Encoding.GetEncoding("Shift_JIS")・・・Encordingが定義されていません

        '列ごとに区切る処理です。 
        Dim q = (
    From s In File.ReadLines(fileName, enc)・・・・ファイルは定義されていません.
    Let ary = s.Replace(" ", vbTab).Replace(" ", vbTab).Split(
        New String() {vbTab}, StringSplitOptions.RemoveEmptyEntries)
    Where ary.Length = 4 '←4列以外の行も許容する場合はこのWhereを省きます 
    Select ary).Select(
        Function(Columns, RowIndex) New With {Key RowIndex, Columns}
    ).ToArray()

        '件数が分かったので、配列4つを初期化しておき… 
        Dim upperIndex As Integer = q.Length - 1
        Dim X(upperIndex), Y(upperIndex), UD1(upperIndex), UD2(upperIndex) As Single

        '整数に変換しながら、文字列配列から整数配列に代入しなおします(変換失敗時は 0 を代入) 
        For Each X In q
            Single.TryParse(X.Columns(0), A(X.RowIndex))・・・・Columns,RowindexはSngleのメンバーではありません.
            Single.TryParse(X.Columns(1), B(X.RowIndex))
            Single.TryParse(X.Columns(2), C(X.RowIndex))
            Single.TryParse(X.Columns(3), D(X.RowIndex))
        Next