Ejemplo n.º 1
0
        /// <summary>
        /// Сохраняет вектор в формате .PCV.
        /// </summary>
        /// <param name="FileName">Имя файла для загрузки.</param>
        private void SavePCV(string FileName)
        {
            var memoryStream = new MemoryStream();
            var t            = new StreamWriter(memoryStream);

            t.Write("vect,");
            t.Write(Header.Width + ",");
            t.Write(Header.Height + ",");
            t.Write(Header.VectType + ",");
            t.Write(RawData.Length + ",");
            t.Write(";");
            for (int i = 0; i <= RawData.Length - 1; i++)
            {
                for (int ii = 0; ii <= RawData[i].Length - 1; ii++)
                {
                    t.Write(string.Format("{0},{1}:", RawData[i][ii].BasePoint.X.ToString(CultureInfo.InvariantCulture), RawData[i][ii].BasePoint.Y.ToString(CultureInfo.InvariantCulture)));
                }
                if (RawData.Length - 1 != i)
                {
                    t.Write("?");
                }
            }
            t.Write("end");

            var compresedBytes = Helper.Compress(memoryStream.ToArray());

            byte[] data = new byte[memoryStream.Length + PCVByteHeader.Length];
            Buffer.BlockCopy(PCVByteHeader, 0, data, 0, PCVByteHeader.Length);
            Buffer.BlockCopy(compresedBytes, 0, data, PCVByteHeader.Length, (int)compresedBytes.Length);
            File.WriteAllBytes(FileName, data);
            t.Close();
        }