バイナリファイルかきこみ

    Private Sub calc_send_code()
        Dim smin_tx_code(96, 32) As Integer
        Dim smin_rx_code(96, 32) As Integer
        Dim bypass_tx_code(96, 32) As Integer
        Dim bypass_rx_code(96, 32) As Integer
        Dim code_point As Integer = 16384
        Dim send_code(code_point) As Integer
        Dim gain_num, mod_num, port_num As Integer
        Dim file_num, sosi_num, freq_num, code_num As Integer
        Dim read_path As String = ""
        Dim pc_path As String = ""
        Dim fp, point_num As Integer
        Dim buf As String
        Dim strline() As String

        For file_num = 0 To 3 Step 1
            Select Case file_num
                Case 0
                    read_path = HAMEN_path & "SMin_TX_HOSEI_CODE.csv"
                Case 1
                    read_path = HAMEN_path & "Bypass_TX_HOSEI_CODE.csv"
                Case 2
                    read_path = HAMEN_path & "SMin_RX_HOSEI_CODE.csv"
                Case 3
                    read_path = HAMEN_path & "Bypass_TX_HOSEI_CODE.csv"
            End Select

            If System.IO.File.Exists(read_path) Then
                sosi_num = 0
                Try
                    fp = FreeFile()
                    FileOpen(fp, read_path, OpenMode.Input)
                    Do Until EOF(fp)
                        buf = LineInput(fp)
                        strline = Split(buf, ",")
                        If strline(0) = "素子" Then
                            Do Until EOF(fp)
                                buf = LineInput(fp)
                                strline = Split(buf, ",")
                                For freq_num = 0 To 31 Step 1
                                    Select Case file_num
                                        Case 0
                                            smin_tx_code(sosi_num, freq_num) = Int(strline(freq_num + 1))
                                        Case 1
                                            bypass_tx_code(sosi_num, freq_num) = Int(strline(freq_num + 1))
                                        Case 2
                                            smin_rx_code(sosi_num, freq_num) = Int(strline(freq_num + 1))
                                        Case 3
                                            bypass_rx_code(sosi_num, freq_num) = Int(strline(freq_num + 1))
                                    End Select
                                    sosi_num = sosi_num + 1
                                Next
                            Loop
                        End If
                    Loop
                Catch ex As Exception
                    TextBox18.AppendText("ファイル取得エラー(" & ex.Message & ")" & vbCrLf)
                End Try
            Else
                'ファイルがない場合は0xFFを配列に読み込む
                For sosi_num = 0 To 95 Step 1
                    For freq_num = 0 To 31 Step 1
                        Select Case file_num
                            Case 0
                                smin_tx_code(sosi_num, freq_num) = &HFF
                            Case 1
                                bypass_tx_code(sosi_num, freq_num) = &HFF
                            Case 2
                                smin_rx_code(sosi_num, freq_num) = &HFF
                            Case 3
                                bypass_rx_code(sosi_num, freq_num) = &HFF
                        End Select
                    Next
                Next
            End If

            'フラッシュROM、書き込みフォーマット
            code_num = 0
            For freq_num = 0 To 31 Step 1
                For gain_num = 0 To 1 Step 1
                    For mod_num = 0 To 15 Step 1
                        For port_num = 0 To 1 Step 1
                            If gain_num = 0 Then
                                For sosi_num = 0 To 7 Step 1
                                    If port_num = 0 Then
                                        If sosi_num < 6 Then
                                            send_code(code_num) = smin_tx_code(mod_num * 6 + sosi_num, freq_num)
                                        Else
                                            send_code(code_num) = &HFF
                                        End If
                                        code_num = code_num + 1
                                    Else
                                        If sosi_num < 6 Then
                                            send_code(code_num) = smin_rx_code(mod_num * 6 + sosi_num, freq_num)
                                        Else
                                            send_code(code_num) = &HFF
                                        End If
                                        code_num = code_num + 1
                                    End If
                                Next
                            Else
                                For sosi_num = 0 To 7 Step 1
                                    If port_num = 0 Then
                                        If sosi_num < 6 Then
                                            send_code(code_num) = bypass_tx_code(mod_num * 6 + sosi_num, freq_num)
                                        Else
                                            send_code(code_num) = &HFF
                                        End If
                                        code_num = code_num + 1
                                    Else
                                        If sosi_num < 6 Then
                                            send_code(code_num) = bypass_rx_code(mod_num * 6 + sosi_num, freq_num)
                                        Else
                                            send_code(code_num) = &HFF
                                        End If
                                        code_num = code_num + 1
                                    End If
                                Next
                            End If
                        Next
                    Next
                Next
            Next
        Next

        pc_path = HAMEN_path & "HOSEI_CODE.bin"
        If System.IO.File.Exists(pc_path) Then
            If DialogResult.OK = MessageBox.Show("「HOSEI_CODE.bin」のファイルが存在します。" & vbCrLf & "上書きしますか?", "確認", MessageBoxButtons.OKCancel, MessageBoxIcon.Information) Then
                Using wr As New BinaryWriter(New FileStream(pc_path, FileMode.Create))
                    For point_num = 0 To code_point - 1 Step 1
                        wr.Write(send_code(point_num))
                    Next
                End Using
            Else
                MessageBox.Show("「HOSEI_CODE.bin」は更新されていません!")
            End If
        Else
            '新規作成
            Using wr As New BinaryWriter(New FileStream(pc_path, FileMode.Create))
                For point_num = 0 To code_point - 1 Step 1
                    wr.Write(send_code(point_num))
                Next
            End Using
        End If

    End Sub