tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^3: 文字が表示できない。
投稿日: 2016/08/10(Wed) 17:20
投稿者耳たぶ黒
まりもんさん返信ありがとうございます。

どうしても同じ形式のデータだけだと情報が足りないので、
CSVファイルの頭にいろいろ情報付けて使用したいんです。
プロバイダー使用で読み込む時はデータ型をString、Date型などを混在させるのは難しいのでしょうか?
よく考えたら、別々に読み込むのもありですね。
例えば、最初の何行かだけString型で読み込もうとするのだったら、どうやったらデータ型の指定はできるのでしょか?

よく確認したらデータテーブルに読み込んだデータを時刻が変になってました。

元データ        |     読み込んだテーブル
1、現場,山梨県都留郡  |     1、   
2、日付,20160805    |     2、  ,20160805      
3、                     |        3、
4、0,0,0,12:10:15      |      4、0,0,0,1988/12/30 12:10:15
5、1,2,2,12:10:16     |      5、1,2,2,1988/12/30 12:10:16


全く意味がなかったですが、時刻の表示が変だったのでプロバイダーを変えてみました。
当初JETプロバイダーを使っていましたが、古いんですね。
ACE.OLEDB.12.0に変更しました。


今はStreamReaderで読見込む方が良いのかと思い、チャレンジ中です。
コンソールによる出力ウィンドウへの出力はOKでした。
これをDataTableに出力したいのですが、自分が無知過ぎてなかなかできません。
これをスパッとDataTableに移行する方法なんてないのか?なんて思ってます。
今はConsole.Writeの部分をTB.Rows.Add()に変更したのですが、上手く読んでくれません。



出力結果------------------------------------
スレッド 0x1b90 はコード 0 (0x0) で終了しました。

項目    値            
現場名:    市川市三田村様邸新築工事            
場 所:    市川市            
試験者:    黒山            
日付    2016/08/10            
試験体No:    1            

No    荷重    変位    時刻    FDN
0    0    0    09:37:38    0
1    0.1    0.59    09:37:38    7
2    0.0    0.61    09:37:43    21
3    0.0    0.61    09:37:47    34
4    0.0    0.62    09:37:49    40
5    0.1    0.62    09:37:51    44
6    0.1    0.62    09:37:52    48
7    0.1    0.61    09:37:54    54
8    0.0    0.62    09:37:55    59
9    0.0    0.61    09:37:57    63
10    0.0    0.62    09:37:58    67

---------------------------------------------



プログラム------------------------------------

Dim ds As New DataSet
        Dim columns As Integer
        Dim rows As Integer
        Dim FolderPath As String
        Dim csvFileName As String
        Dim TB As DataTable = ds.Tables.Add
        '「開く」ダイアログを表示
        If OpenFileDialogCsv.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
            'ピクチャーボックスに選択したファイル名を指定
            FolderPath = IO.Path.GetDirectoryName(OpenFileDialogCsv.FileName)

            csvFileName = IO.Path.GetFileName(OpenFileDialogCsv.FileName)
            TextBox1.Text = FolderPath & "\" & csvFileName
        End If
        
        Try
            Using sr As New System.IO.StreamReader(TextBox1.Text, System.Text.Encoding.Default)
                'ファイルの最後までループ
                Do Until sr.Peek() = -1
                    Dim temp() As String
                    temp = Split(sr.ReadLine(), ",")
                    '※1 データの項目数が不定の場合は下記のようにして取得してください。
                    Dim i As Integer
                    For i = 0 To temp.GetUpperBound(0)
                        If i = temp.GetUpperBound(0) Then
                            Console.WriteLine(temp(i))
                        Else
                            Console.Write(temp(i) & vbTab)
                        End If
                    Next
                Loop
            End Using
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try

-------------------------------------------------

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。