|
■No87255 (WebSurfer さん) に返信
WebSurfer さん
はじめまして、big7_8です。 即返ありがとうございます。
私もSQLの利用は考慮いたしました。ですが、オブジェクト指向のプログラム自体が初めてで とてもそこまでは頭がついていきそうにありません。
それで、SQLについては将来の課題ということで・・・
せっかくのアドバイスすみません。
> アップされているコードを読む気力がないのでハズレだったらスミマセンが・・・
コードが読み難くて申し訳ありませんでした。VB.NETからコピーした エディッター上では字下げされていたので、これでいいと思っておりましたが、 UPしたら、 字下げが消去されていました。しかし、時間がなかったので そのままUPしてしまいました。後、コメントがないのも読み難い理由の一つかな と思います。それで、再度、字下げ、コメントをつけて提示させて頂きます。
【サンプルデータ生成コード】 '構造体の宣言 Public Structure Jstock Public dteDate As Date Public N20O As Single Public N20H As Single Public N20L As Single Public N20C As Single End Structure
Public Class Form1 Inherits System.Windows.Forms.Form
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim js As Jstock FileOpen(1, "e:\data\test4.dat", OpenMode.Random, , , Len(js))
'データ入力 js.dteDate = #4/1/2014# js.N20O = 21657.87 js.N20H = 21719.43 js.N20L = 21591.39 js.N20C = 21660.28 FilePut(1, js, 1) js.dteDate = #4/2/2015# js.N20O = 21801.41 js.N20H = 21917.35 js.N20L = 21746.69 js.N20C = 21778.74 FilePut(1, js, 2) js.dteDate = #4/3/2016# js.N20O = 21801.41 js.N20H = 21917.35 js.N20L = 21746.69 js.N20C = 21778.74 FilePut(1, js, 3) js.dteDate = #4/4/2017# js.N20O = 21801.41 js.N20H = 21917.35 js.N20L = 21746.69 js.N20C = 21778.74 FilePut(1, js, 4) js.dteDate = #4/5/2018# js.N20O = 21801.41 js.N20H = 21917.35 js.N20L = 21746.69 js.N20C = 21778.74 FilePut(1, js, 5)
'データ閲覧 FileGet(1, js, 1) Trace.WriteLine(js.dteDate) Trace.WriteLine(js.N20O) Trace.WriteLine(js.N20H) Trace.WriteLine(js.N20L) Trace.WriteLine(js.N20C) FileGet(1, js, 2) Trace.WriteLine(js.dteDate) Trace.WriteLine(js.N20O) Trace.WriteLine(js.N20H) Trace.WriteLine(js.N20L) Trace.WriteLine(js.N20C)
FileClose(1) End Sub End Class
【本体コード】
Imports System Imports System.Drawing Imports System.Windows.Forms Imports System.IO
Public Interface IDataGridViewEditingCell
End Interface
'構造体の宣言 Public Structure Jstock Public dteDate As Date Public N20O As Single Public N20H As Single Public N20L As Single Public N20C As Single End Structure
'グローバル変数の宣言 Public Class Config Public Shared dteDate As Date Public Shared N20O As Single Public Shared N20H As Single Public Shared N20L As Single Public Shared N20C As Single
Public Shared RN1 As Integer Public Shared RNX As Integer Public Shared COUNT As Integer End Class
Public Class Form1 Inherits System.Windows.Forms.Form
Implements IDataGridViewEditingCell
Shared dgv As DataGridView
Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim js As Jstock FileOpen(1, "e:\data\test4.dat", OpenMode.Random, , , Len(js)) '最大レコード数 Config.RN1 = LOF(1) / Len(js) '初期表示を最大レコードに設定 Config.RNX = Config.RN1 'RnxCheck()でENDを選択したとき、LoopをExit Do While Config.RNX > 0 DataGet() '初回のみ列を定義 If Config.COUNT = 0 Then InitializeDGV() '行の初期化 dgv.Rows.Clear() '行を定義及びセルのデータ引き渡し FillDGV() 'DataGridViewの表示 Me.Show() dgv.Select() dgv.CurrentCell = dgv(0, 4) dgv.BeginEdit(True) MessageBox.Show("a1") '参照レコードナンバーの変更 RnxCheck() Loop '終了(RnxCheck()でENDを選択) If Config.RNX = 0 Then FileClose(1) Application.Exit() End If
End Sub 'コンストラクタ- Public Sub New() dgv = New DataGridView() dgv.Dock = DockStyle.Fill dgv.AllowUserToAddRows = False dgv.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells Me.Controls.Add(dgv) End Sub
'参照レコードナンバーの変更 Public Sub RnxCheck() Dim GetString As String = dgv.CurrentCell.Value
Select Case GetString Case ""
Case "<<" Config.RNX = Config.RNX - 100 If Config.RNX < 1 Then Config.RNX = 1 Case "<" Config.RNX = Config.RNX - 1 If Config.RNX < 1 Then Config.RNX = 1 Case "END" Config.RNX = 0 Case ">" Config.RNX = Config.RNX + 1 If Config.RNX > Config.RN1 Then Config.RNX = Config.RN1 Case ">>" Config.RNX = Config.RNX + 100 If Config.RNX > Config.RN1 Then Config.RNX = Config.RN1 Case Else Config.RNX = Config.RN1 '仮 End Select
End Sub
'列を定義 Sub InitializeDGV() Dim column1 As New DataGridViewTextBoxColumn column1.HeaderText = " 銘柄 " dgv.Columns.Add(column1)
Dim column2 As New DataGridViewTextBoxColumn column2.HeaderText = "OPEN" dgv.Columns.Add(column2)
Dim column3 As New DataGridViewTextBoxColumn column3.HeaderText = "HIGH" dgv.Columns.Add(column3)
Dim column4 As New DataGridViewTextBoxColumn column4.HeaderText = "LOW" dgv.Columns.Add(column4)
Dim column5 As New DataGridViewTextBoxColumn column5.HeaderText = "CLOSE" dgv.Columns.Add(column5)
Config.COUNT = 1
End Sub
'行を定義 Sub FillDGV() dgv.Rows.Add("日付等", Config.dteDate, Config.RNX) dgv.Rows.Add() dgv.Rows.Add("日経平均", Config.N20O, Config.N20H, Config.N20L, Config.N20C) dgv.Rows.Add() dgv.Rows.Add("<<", "<", "END", ">", ">>") End Sub
Sub DataGet() Dim js As Jstock
FileGet(1, js, Config.RNX) Config.dteDate = js.dteDate Config.N20O = js.N20O Config.N20H = js.N20H Config.N20L = js.N20L Config.N20C = js.N20C End Sub
End Class
|