配列、array関数について への返答
投稿で使用できる特殊コードの説明。(別タブで開きます。)
以下の返答は逆順(新しい順)に並んでいます。
投稿者 魔界の仮面弁士  (社会人)
投稿日時
2020/2/9 16:26:21
> 別ファイルにて
> a(1) = Array("1","2","3","4,"5")
> a(2) = Array("6","7","8","9","10")
> ~
> a(〇) = Array("96","97","98","99","100")
> といった配列のデータがあります。
データを保持するための外部ファイルなら、CSV ファイル等で良いのでは?
わざわざ Array 何某といった記述を加える必要は無いと思うのですが、
ひとまず上記が、 D:\TEMP\TEST.TXT というテキストファイルとして
保存されているなら、下記のようにして読み込むことができます。
※やり方は色々あると思いますが、一例として。
> a(1) = Array("1","2","3","4,"5")
> a(2) = Array("6","7","8","9","10")
> ~
> a(〇) = Array("96","97","98","99","100")
> といった配列のデータがあります。
データを保持するための外部ファイルなら、CSV ファイル等で良いのでは?
わざわざ Array 何某といった記述を加える必要は無いと思うのですが、
ひとまず上記が、 D:\TEMP\TEST.TXT というテキストファイルとして
保存されているなら、下記のようにして読み込むことができます。
※やり方は色々あると思いますが、一例として。
Option Strict On
Imports System.Data
Imports System.IO
Imports System.Text
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
DataGridView1.DataSource = ReadFromDataFile("D:\TEMP\TEST.TXT")
End Sub
Private Function ReadFromDataFile(dataFile As String) As DataTable
Dim tbl As New DataTable("Array")
For Each line In File.ReadLines(dataFile, Encoding.GetEncoding("Shift_JIS"))
Dim values(-1) As Object
Try
Dim separate = Split(line, ") = Array(", 2, CompareMethod.Text)
Dim body = separate.Last().TrimEnd(" )".ToCharArray())
Dim fields As String() = body.Split(","c)
values = fields.Select(AddressOf ToInt).ToArray()
For f = tbl.Columns.Count + 1 To values.Length
tbl.Columns.Add("Col" & CStr(f), GetType(Integer))
Next
Catch
Finally
tbl.Rows.Add(values)
End Try
Next
Return tbl
End Function
Private Function ToInt(s As String) As Object
Dim i As Integer
If Integer.TryParse(s.Replace(""""c, ""), i) Then
Return i
Else
Return DBNull.Value
End If
End Function
End Class
投稿者 (削除されました)  ()
投稿日時
2020/2/9 14:49:21
(削除されました)
投稿者 烏龍茶  ()
投稿日時
2020/2/9 01:25:23
はじめまして、烏龍茶と申します。
よろしくお願いします。
別ファイルにて
a(1) = Array("1","2","3","4,"5")
a(2) = Array("6","7","8","9","10")
~
a(〇) = Array("96","97","98","99","100")
といった配列のデータがあります。
Visual Studioにて、このファイルを読み込んでDataGridViewにて以下のように表示がしたいです。
[1つ目の数字] [2つ目の数字] [3つ目の数字] [4つ目の数字] [5つ目の数字]
1 2 3 4 5
6 7 8 9 10
~
96 97 98 99 100
読み込むことはできたのですが、「a(1) = Array("1","2","3","4,"5")」というような文字列?データ?
となってしまうため、配列として扱うことができず表示させることができません。
dim aaa() as string = {"1","2","3","4","5"}
というような形に書き換えなければいけないのでしょうか?
下手くそな質問ですいません。
宜しくお願いします
よろしくお願いします。
別ファイルにて
a(1) = Array("1","2","3","4,"5")
a(2) = Array("6","7","8","9","10")
~
a(〇) = Array("96","97","98","99","100")
といった配列のデータがあります。
Visual Studioにて、このファイルを読み込んでDataGridViewにて以下のように表示がしたいです。
[1つ目の数字] [2つ目の数字] [3つ目の数字] [4つ目の数字] [5つ目の数字]
1 2 3 4 5
6 7 8 9 10
~
96 97 98 99 100
読み込むことはできたのですが、「a(1) = Array("1","2","3","4,"5")」というような文字列?データ?
となってしまうため、配列として扱うことができず表示させることができません。
dim aaa() as string = {"1","2","3","4","5"}
というような形に書き換えなければいけないのでしょうか?
下手くそな質問ですいません。
宜しくお願いします
いただいたサンプルを参考から、答えにたどり着くことができました!
ご返答ありがとうございました。