2011年6月24日金曜日

→→→エクスポート(Read/Write)

----Export ----------------------------------
Dim sr As IO.StreamWriter
Dim exfolder As String
Dim linetext As String

Me.Cursor = Cursors.WaitCursor
exfolder = Application.StartUpPath & "データ出力"
If IO.Directory.Exists(exfolder) = False Then
    IO.Directory.CreateDirectory(exfolder)
End If
sr = New IO.StreamWriter( exfolder & "保存データ.txt", False, 
                  System.Text.Encoding.GetEncoding("Shift-JIS"))
Using connection As New SqlClient.SqlConnection
    connection.connectionString  = "Data source = \SQLEXPRESS;
         AttachDbFilename = " & My.Application.Info.DirectoryPath &
         " \TEST.mdf; Integrated Security = True; Connect TimeOut = 30;
         User Instance = True"
    Dim command As New SqlClient.SqlCommand("SELECT * FROM デーブル" , connection)
    connection.Open()
    Dim dr As SqlClient.SqlDataReader = command.ExecuteReader()
    Do while dr.Read
        linetext = dr("項目1") & ","
        linetext &= dr("項目2")
        sr.writeline( linetext )
    Loop
    dr.close()
    connection.close()
End Using
sr.close()
Me.cursor = Cursor.Default
Msgbox("終了")

-------------------------------------------------------------------------
Private Structure Info
      Public strA As String
      Public strB As String
End Structure


Private Structure Wri
      Public strW As String
      Public strX As String
End Structure
Private pInfo(1000) As Info
Private pWri(1000) As Wri
const FileName = "D:\in.txt"
const FileOutName = "D:\out.txt"

Dim FileNum , FileOutNum As Integer
Dim i , j As Integer

FileNum = FreeFile()
FileOpen( FileNum , FileName , OpenMode.Input )
i = 0 
Do Until EOF ( FileNum )
    Input ( FileNum , pInfo(i).strA )
    Input ( FileNum , pInfo(i).strB )
Loop

FileOutNum = FreeFile()
FileOpen( FileOutNum , FileOutName , OpenMode.Output )

For j = 0 To i - 1
    pWri(j).strW = pInfo(j).strA
    pWri(j).strX = pInfo(j).strB
    writeLine( FileOutNum , pWri(j).strW , pWri(j).strX )
Next

FileClose( FileNum )
FileClose( FileOutNum )
------------------------------------------------------------------------
Read/Write基本形



Private Structure Info
      Public str() As String
End Structure

Dim strOcc() As String
Dim FileName As String
Dim OutFileName As String
Dim OpenFile1 As New OpenFileDialog()
Dim SaveFile1 As New SaveFileDialog()
Dim FileNum , FileOutNum As Integer
Dim i , j As Integer

Dim DataBuff As String
Private pInfo(150000) As Info


Private Sub ReadTab()
    OpenFile1.DefaultExt = "*.*"
    OpenFile1.Filter = "テキスト(*.txt)|*.txt|すべてのファイル|*.*"
    If OpenFile1.ShowDialog() = DialogResult.OK Then
          Cursor.current = cursors.waitcursor
          FileName = OpenFile1.FileName
    Else
          Exit Sub
    End If
    FileNum = FreeFile()
    FileOpen( FileNum , FileName , OpenMode.Input )

    Do Until EOF ( FileNum )
        If i > 149999 Then 
            MessageBox.Show("エラー")
            Me.Close()
            Exit Sub
       End If   
       DataBuff = LineInput( FileNum )
       strOcc = Split( DataBuff , vbTab )
       j = UBound( strOcc )
       ReDim pInfo(i).str(j)
       For k As Integer = 0 To j
            pInfo(i).str(k)  = strOcc(k)
       Next
       i += 1
     Loop
     Cursor.Current = Cursors.Default
     FileClose( FileNum )
End Sub

Private Sub Write()
      Dim p,q As Integer
      SaveFile1.DefaultExt = "*.txt"
      SaveFile1.Filter = "保存するファイル名|*.txt"
      If SaveFile1.ShowDialog() = Windows.Forms.DialogResult.OK Then
         OutFileName  = SaveFile1.FileName
      Else
         Exit Sub
      End If

      FileOutNum = FreeFile()
      FileOpen( FileOutNum , OutFileName , OpenMode.OutPut )
      For p = 0 To i - 1
         For  q = 0  To j - 1
             Write( FileOutNum , pInfo(p).str(q))
         Next
         WriteLine( FileOutNum , pInfo(p).str(j))
      Next
      MessageBox.show( i & "件のデータを保存しました")
      FileClose( FileOutNum )
End Sub  


0 件のコメント:

コメントを投稿