コード例 #1
0
ファイル: MasterRec.cs プロジェクト: zdomokos/MetaStockDb
        public string Remainder;                    // 53 bytes minus whatever ExtName used

        public string[] ToStringArray()
        {
            string asc_str = $"{(char)asc1}{(char)asc2}";

            return(new string[]
            {
                asc_str.ToString(),
                FileNumber.ToString("D4"),
                Fill1,
                NumFields.ToString(),
                Del.ToString("X2"),
                FB1.ToString("X"),
                Space.ToString("X2"),
                FB2.ToString("X"),
                Symbol,
                Fill2,
                Name,
                Fill3,
                new string((char)TimeFrame, 1),
                Fill4, MsFileIO.ConvertDateToString(FirstDate), MsFileIO.ConvertDateToString(BeginTradeTime),
                MsFileIO.ConvertDateToString(LastDate), MsFileIO.ConvertDateToString(EndTradeTime),
                MsFileIO.ConvertDateToString(StartTimeRange), MsFileIO.ConvertDateToString(EndTimeRange),
                Fill5,
                MysteryData,
                Fill6,
                ExtName,
                Remainder
            });
        }
コード例 #2
0
ファイル: MetaStockFile.cs プロジェクト: zdomokos/MetaStockDb
        public override void Load(string filename)
        {
            FileName = filename;

            FileStream   fs = null;
            BinaryReader br = null;

            try
            {
                fs = new FileStream(filename, FileMode.Open);
                br = new BinaryReader(fs);

                Header.num = br.ReadInt16();
                Header.max = br.ReadInt16();
                byte[] buffer = br.ReadBytes(49);
                Header.RemainText = MsFileIO.ConvertToHex(buffer, 16);
                byte[] tmpbuf = new byte[60];

                for (int i = 0; i < Header.num; i++)
                {
                    MasterRec rec;
                    rec.FileNumber       = br.ReadByte();
                    rec.FileType1        = br.ReadByte();
                    rec.FileType2        = br.ReadByte();
                    rec.RecLen           = br.ReadByte();
                    rec.NumFields        = br.ReadByte();
                    rec.Reserved1        = br.ReadByte();
                    rec.CenturyIndicator = br.ReadByte();

                    rec.Name = MsFileIO.ReadStringField(br, tmpbuf, 16).Trim();

                    rec.Reserved2    = br.ReadByte();
                    rec.CTFlag       = br.ReadByte();
                    rec.FirstDate    = br.ReadUInt32();
                    rec.LastDate     = br.ReadUInt32();
                    rec.TimeInterval = br.ReadByte();
                    rec.IDATimeBase  = br.ReadUInt16();

                    rec.Symbol = MsFileIO.ReadStringField(br, tmpbuf, 14).Trim();

                    rec.Reserved3 = br.ReadByte();
                    rec.Flag      = br.ReadByte();
                    rec.Reserved4 = br.ReadByte();

                    Records.Add(rec);
                }
            }
            catch (Exception e)
            {
                // log
                throw;
            }
            finally
            {
                br?.Close();
                fs?.Close();
            }
        }
コード例 #3
0
ファイル: PriceRec.cs プロジェクト: zdomokos/MetaStockDb
 public string[] ToStringArray()
 {
     return(new string[]
     {
         MsFileIO.ConvertDateToString(Datef),
         Open.ToString(),
         High.ToString(),
         Low.ToString(),
         Close.ToString(),
         Volume.ToString(),
         Unadj.ToString(),
     });
 }
コード例 #4
0
ファイル: MasterRec.cs プロジェクト: zdomokos/MetaStockDb
        public string[] ToStringArray()
        {
            string file_type = $"{FileType1:X2} {FileType2:X2}";

            return(new string[]
            {
                FileNumber.ToString("D4"),
                file_type,
                RecLen.ToString(),
                NumFields.ToString(),
                Reserved1.ToString("X2"),
                CenturyIndicator.ToString("X2"),
                Name,
                Reserved2.ToString("X2"),
                CTFlag.ToString("X2"), MsFileIO.ConvertDateToString(FirstDate), MsFileIO.ConvertDateToString(LastDate),
                new string((char)TimeInterval, 1),
                IDATimeBase.ToString(),
                Symbol,
                Reserved3.ToString("X2"),
                Flag.ToString("X2"),
                Reserved4.ToString("X2")
            });
        }
コード例 #5
0
ファイル: MetaStockFile.cs プロジェクト: zdomokos/MetaStockDb
        public override void Load(string filename)
        {
            FileName = filename;

            FileStream   fs = null;
            BinaryReader br = null;

            try
            {
                byte[] tmpbuf = new byte[200];
                byte[] rembuf = new byte[60];

                fs = new FileStream(filename, FileMode.Open);
                br = new BinaryReader(fs);

                Header.num = br.ReadInt16();
                Header.max = br.ReadInt16();

                var sb = new StringBuilder();
                br.Read(tmpbuf, 0, 45);
                sb.Append(MsFileIO.ConvertToFillString(tmpbuf, 45)); sb.Append("\r\n");
                br.Read(tmpbuf, 0, 4);
                sb.Append(MsFileIO.ConvertToFillString(tmpbuf, 4)); sb.Append("\r\n");
                byte[] buffer = br.ReadBytes(139);
                sb.Append(MsFileIO.ConvertToHex(buffer, 16));
                Header.RemainText = sb.ToString();

                for (int i = 0; i < Header.num; i++)
                {
                    EMasterRec rec;

                    rec.asc1           = br.ReadByte();
                    rec.asc2           = br.ReadByte();
                    rec.FileNumber     = br.ReadByte();
                    rec.Fill1          = MsFileIO.ReadHexString(br, tmpbuf, 3);
                    rec.NumFields      = br.ReadByte();
                    rec.Del            = br.ReadByte();
                    rec.FB1            = br.ReadByte();
                    rec.Space          = br.ReadByte();
                    rec.FB2            = br.ReadByte();
                    rec.Symbol         = MsFileIO.ReadStringField(br, tmpbuf, 14);
                    rec.Fill2          = MsFileIO.ReadHexString(br, tmpbuf, 7);
                    rec.Name           = MsFileIO.ReadStringField(br, tmpbuf, 16);
                    rec.Fill3          = MsFileIO.ReadHexString(br, tmpbuf, 12);
                    rec.TimeFrame      = br.ReadByte();
                    rec.Fill4          = MsFileIO.ReadHexString(br, tmpbuf, 3);
                    rec.FirstDate      = br.ReadSingle();
                    rec.BeginTradeTime = br.ReadSingle();
                    rec.LastDate       = br.ReadSingle();
                    rec.EndTradeTime   = br.ReadSingle();
                    rec.StartTimeRange = br.ReadSingle();
                    rec.EndTimeRange   = br.ReadSingle();
                    rec.Fill5          = MsFileIO.ReadFillString(br, tmpbuf, 38);
                    rec.MysteryData    = MsFileIO.ReadHexString(br, tmpbuf, 4);
                    rec.Fill6          = MsFileIO.ReadFillString(br, tmpbuf, 9);
                    rec.ExtName        = MsFileIO.ReadStringField(br, tmpbuf, 53);
                    Array.Copy(tmpbuf, rec.ExtName.Length, rembuf, 0, 53 - rec.ExtName.Length);
                    rec.Remainder = MsFileIO.ConvertToFillString(rembuf, 53 - rec.ExtName.Length);

                    Records.Add(rec);
                }
            }
            catch (Exception e)
            {
                // log
                throw;
            }
            finally
            {
                br?.Close();
                fs?.Close();
            }
        }
コード例 #6
0
ファイル: MetaStockFile.cs プロジェクト: zdomokos/MetaStockDb
        public override void Load(string filename)
        {
            FileName = filename;
            FileStream   fs = null;
            BinaryReader br = null;

            try
            {
                byte[] tmpbuf = new byte[150];

                fs = new FileStream(filename, FileMode.Open);
                br = new BinaryReader(fs);

                var sb = new StringBuilder();
                br.Read(tmpbuf, 0, 10);
                sb.Append(MsFileIO.ConvertToFillString(tmpbuf, 10));
                sb.Append("\r\n");

                Header.num = br.ReadUInt16();
                UInt16 f1 = br.ReadUInt16();
                Header.max = br.ReadUInt16();
                UInt16 f2   = br.ReadUInt16();
                UInt32 next = br.ReadUInt16();
                UInt16 f3   = br.ReadUInt16();
                sb.AppendFormat("Next: {0}\r\n", next);

                byte[] buffer = br.ReadBytes(128);
                sb.Append(MsFileIO.ConvertToHex(buffer, 16));
                Header.RemainText = sb.ToString();

                for (UInt32 i = 0; i < Header.num; i++)
                {
                    XMasterRec rec;

                    rec.StartByte  = br.ReadByte();
                    rec.Symbol     = MsFileIO.ReadStringField(br, tmpbuf, 15);
                    rec.Name       = MsFileIO.ReadStringField(br, tmpbuf, 46);
                    rec.TimeFrame  = br.ReadByte();
                    rec.Fill1      = MsFileIO.ReadHexString(br, tmpbuf, 2);
                    rec.FileNumber = br.ReadUInt16();
                    rec.Fill2      = MsFileIO.ReadHexString(br, tmpbuf, 3);
                    rec.Del        = br.ReadByte();
                    rec.Fill3      = MsFileIO.ReadFillString(br, tmpbuf, 9);
                    rec.Date1      = br.ReadUInt32();
                    rec.Mystery1   = br.ReadUInt32();
                    rec.Fill4      = MsFileIO.ReadFillString(br, tmpbuf, 16);
                    rec.FirstDate1 = br.ReadUInt32();
                    rec.FirstDate2 = br.ReadUInt32();
                    rec.Fill5      = MsFileIO.ReadHexString(br, tmpbuf, 4);
                    rec.LastDate   = br.ReadUInt32();
                    rec.Fill6      = MsFileIO.ReadFillString(br, tmpbuf, 30);

                    Records.Add(rec);
                }
            }
            catch (Exception e)
            {
                // log
                throw;
            }
            finally
            {
                br?.Close();
                fs?.Close();
            }
        }
コード例 #7
0
ファイル: PriceRec.cs プロジェクト: zdomokos/MetaStockDb
 public override string ToString()
 {
     return($"{MsFileIO.ConvertDateToString(Datef)}, {Open}, {High}, {Low}, {Close}, {Volume}, {Unadj}");
 }