アプリ版:「スタンプのみでお礼する」機能のリリースについて

余り、やっている全容を示すのもと思って関係個所だけを提示して質問してきました。
しかし、回答者の方にとっては煩わしい質問の仕方。
ですから、今回は、全てを晒した上で質問します。

”列添字最大値”という記号定数を用いています。
現実のアプリケーションでは、これは良い方法だと思います。
しかし、それはそれ、これはこれです。

VB.NET の初学者の私は、<記号定数を用いない書き方>が知りたいところです。
この最終的な疑問が解消すれば、テキストの配列への呼び込み実験は終了。
宜しくお願いします。

' ==========================
' CSVReadToArray のテスト2
' ==========================
Const 列添字最大値 As Integer = 3
Sub Main()
  Dim I As Integer' 行を参照するための For 文の変数
  Dim J As Integer' 列を参照するための For 文の変数
  'Dim K As Integer' 列(フィールドあるいは要素)の数
  Dim aDatas As New List(Of String())()
  Dim N = CSVReadToArray("D:\Temp\付属一覧.csv", aDatas) - 1

  For I = 0 To N
    For J = 0 To 列添字最大値
      Debug.Print(aDatas(I)(J))
    Next J
  Next I
End Sub

' =============================================================
' CSV ファイルを配列に読み込む; TextFieldParser クラス版; 第2版
' =============================================================
Function CSVReadToArray(ByVal aFile As String, _
ByRef aRows As List(Of String())) As Integer
  If File.Exists(aFile) Then
    Try
      Using MyReader As New TextFieldParser(aFile, Encoding.Default)
        MyReader.TextFieldType = FieldType.Delimited
        MyReader.Delimiters = New String() {","}
        While Not MyReader.EndOfData
          aRows.Add(MyReader.ReadFields())
        End While
        Return aRows.Count
      End Using
    Catch ex As FileIO.MalformedLineException
      MsgBox(ex.Message & "(CSVReadToArray)", , "告知:")
      Return 0
    End Try
  Else
    Return 0
  End If
End Function

A 回答 (1件)

度々お邪魔させて頂きます。



'<記号定数を用いない書き方>
そのまま当てはめるなら
aDatas(I).GetUpperBound(0)
でしょうか。

ちょっと気になったのですが
Dim aDatas As New List(Of String())()
この宣言を
Dim aDatas As New List(Of String())
としては駄目なのでしょうか?

コードを見る限り大丈夫そうなのですが。

#いらぬ世話でしたら申しわけない。
    • good
    • 0
この回答へのお礼

ともかく、OKWaveの回答だけを手掛かりに何がなんだかわからないままで書き上げています。
ですから、<いらぬお世話>ではありません。

当方、プログラマでのなんでもないただのデザイナ。
ですから、<いらぬお世話>ではありません。

VB.NET の学習も既に33日目。
ようやく、MSDN の読むべき個所がチラリと見えてきました。
ですから、回答者頼りを少し改めたいとは思っています。
が、所詮は還暦を迎えた素人ですので限界があります。

今後とも宜しくお願いします。

なお、指摘の通りに修正しても動作しました。
ありがとうございます。

お礼日時:2009/02/27 19:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!