private void WriteBinaryFile(string fileName, Tuple <RCV_FENBI, IntPtr> tuple) { using (FileStream fileStream = new FileStream(fileName, chkOverwrite.Checked ? FileMode.Create : FileMode.Append)) { using (BinaryWriter writer = new BinaryWriter(fileStream)) { writer.Write(0); for (int i = 0; i < tuple.Item1.m_nCount; i++) { HaiLiDrvDemo.RCV_FENBI_STRUCTEx data = (HaiLiDrvDemo.RCV_FENBI_STRUCTEx)Marshal.PtrToStructure( new IntPtr((int)tuple.Item2 + 30 + 108 * i), typeof(HaiLiDrvDemo.RCV_FENBI_STRUCTEx)); writer.Write(Reverse(BitConverter.GetBytes(data.m_lTime * 1000L))); writer.Write(Reverse(BitConverter.GetBytes((int)Math.Round(data.m_fNewPrice * 100)))); writer.Write(Reverse(BitConverter.GetBytes(0))); writer.Write(Reverse(BitConverter.GetBytes((long)Math.Round(data.m_fVolume * 100L)))); writer.Write(Reverse(BitConverter.GetBytes((long)Math.Round(data.m_fAmount * 100L)))); writer.Write(Reverse(BitConverter.GetBytes(true))); for (int j = 0; j < 5; j++) { writer.Write(Reverse(BitConverter.GetBytes(data.m_fBuyPrice[j]))); writer.Write(Reverse(BitConverter.GetBytes(data.m_fBuyVolume[j]))); } for (int j = 0; j < 5; j++) { writer.Write(Reverse(BitConverter.GetBytes(data.m_fSellPrice[j]))); writer.Write(Reverse(BitConverter.GetBytes(data.m_fSellVolume[j]))); } } } } }
private void WriteJsonFile(string fileName, Tuple <RCV_FENBI, IntPtr> tuple) { using (System.IO.StreamWriter sw = new System.IO.StreamWriter(fileName, !chkOverwrite.Checked)) { for (int i = 0; i < tuple.Item1.m_nCount; i++) { HaiLiDrvDemo.RCV_FENBI_STRUCTEx Buf = (HaiLiDrvDemo.RCV_FENBI_STRUCTEx)Marshal.PtrToStructure( new IntPtr((int)tuple.Item2 + 30 + 108 * i), typeof(HaiLiDrvDemo.RCV_FENBI_STRUCTEx)); string strSerializeJSON = JsonConvert.SerializeObject(Buf); sw.WriteLine(strSerializeJSON);// 直接追加文件末尾,换行 } } }