public void TestSecondWriteMethod()
        {
            var idColumn   = DbfFieldDescriptors.GetIntegerField("Id");
            var nameColumn = DbfFieldDescriptors.GetStringField("Name");
            var columns    = new List <DbfFieldDescriptor>()
            {
                idColumn, nameColumn
            };

            Func <MyClass, object> mapId   = myClass => myClass.Id;
            Func <MyClass, object> mapName = myClass => myClass.Name;
            var mapping = new List <Func <MyClass, object> >()
            {
                mapId, mapName
            };

            List <MyClass> values = new List <MyClass>();

            values.Add(new MyClass()
            {
                Id = 1, Name = "name1"
            });

            DbfFileFormat.Write(@"D:\yourFile.dbf", values, mapping, columns, Encoding.ASCII);
        }
        public void TestFirstWriteMethod()
        {
            DataTable dt = new DataTable();

            dt.Columns.Add("Id");
            dt.Columns.Add("Name");

            dt.Rows.Add("1", "Chirag");

            DbfFileFormat.Write(@"D:\yourFile.DBF", dt, Encoding.Default);
        }
        //Экспорт таблицы 4 в dbf
        public static bool ExportUnionReportT4ToDbf(string path, List <ExportUnionReportT4> export, string fileNameDbf, out string error)
        {
            error = string.Empty;
            if (path == string.Empty)
            {
                error = "path == string.Empty";
                return(false);
            }
            if (!Directory.Exists(path))
            {
                error = "!Directory.Exists(path)";
                return(false);
            }
            if (export == null)
            {
                error = "export == null";
                return(false);
            }
            string pathToTable = path + "\\" + fileNameDbf + ".dbf";

            try
            {
                File.Delete(pathToTable);
            }
            catch (Exception exc)
            {
                error = exc.Message;
                return(false);
            }

            var encoding = Encoding.GetEncoding(1251);
            var stream   = new FileStream(pathToTable, FileMode.Create);
            var writer   = new BinaryWriter(stream);

            var columns = GetFieldDbfUnionReportT4();
            var header  = new DbfHeader(export.Count, columns.Count, DbfFileFormat.GetRecordLength(columns), encoding);

            writer.Write(IRI.Ket.IO.BinaryStream.StructureToByteArray(header));
            foreach (DbfFieldDescriptor item in columns)
            {
                writer.Write(IRI.Ket.IO.BinaryStream.StructureToByteArray(item));
            }
            //Terminator
            writer.Write(byte.Parse("0D", System.Globalization.NumberStyles.HexNumber));

            foreach (var record in export)
            {
                // All dbf field records begin with a deleted flag field. Deleted - 0x2A (asterisk) else 0x20 (space)
                writer.Write(byte.Parse("20", System.Globalization.NumberStyles.HexNumber));

                byte[] temp  = null;
                string value = null;
                //1 PERIOD_M
                temp  = new byte[columns.Find(rec => rec.Name == "PERIOD_M").Length];
                value = record.PERIOD_M.ToString();
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //2 PERIOD_M
                temp  = new byte[columns.Find(rec => rec.Name == "PERIOD_Y").Length];
                value = record.PERIOD_Y.ToString();
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //3 UKR_GROMAD
                temp  = new byte[columns.Find(rec => rec.Name == "UKR_GROMAD").Length];
                value = record.UKR_GROMAD.ToString();
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //4 NUMIDENT
                temp  = new byte[columns.Find(rec => rec.Name == "NUMIDENT").Length];
                value = record.NUMIDENT;
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //5 LN
                temp  = new byte[columns.Find(rec => rec.Name == "LN").Length];
                value = record.LN;
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //6 NM
                temp  = new byte[columns.Find(rec => rec.Name == "NM").Length];
                value = record.NM;
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //7 FTN
                temp  = new byte[columns.Find(rec => rec.Name == "FTN").Length];
                value = record.FTN;
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //8 C_PID
                temp  = new byte[columns.Find(rec => rec.Name == "C_PID").Length];
                value = record.C_PID;
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //9 START_DT
                temp  = new byte[columns.Find(rec => rec.Name == "START_DT").Length];
                value = record.START_DT.ToString();
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //10 STOP_DT
                temp  = new byte[columns.Find(rec => rec.Name == "STOP_DT").Length];
                value = record.STOP_DT.ToString();
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //11 DAYS
                temp  = new byte[columns.Find(rec => rec.Name == "DAYS").Length];
                value = record.DAYS.ToString();
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //12 HH
                temp  = new byte[columns.Find(rec => rec.Name == "HH").Length];
                value = record.HH.ToString();
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //13 MM
                temp  = new byte[columns.Find(rec => rec.Name == "MM").Length];
                value = record.MM.ToString();
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //14 NORMA_1
                temp  = new byte[columns.Find(rec => rec.Name == "NORMA_1").Length];
                value = record.NORMA_1.ToString();
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //15 NORMA_2
                temp  = new byte[columns.Find(rec => rec.Name == "NORMA_2").Length];
                value = record.NORMA_2.ToString();
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //16 NORMA_3
                temp  = new byte[columns.Find(rec => rec.Name == "NORMA_3").Length];
                value = record.NORMA_3.ToString();
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //17 NUM_NAK
                temp  = new byte[columns.Find(rec => rec.Name == "NUM_NAK").Length];
                value = record.NUM_NAK;
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //18 DT_NAK
                temp  = new byte[columns.Find(rec => rec.Name == "DT_NAK").Length];
                value = record.DT_NAK.ToString();
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //19 SEAZON
                temp  = new byte[columns.Find(rec => rec.Name == "SEAZON").Length];
                value = record.SEAZON.ToString();
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //20 OZN
                temp  = new byte[columns.Find(rec => rec.Name == "OZN").Length];
                value = record.OZN.ToString();
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
            }
            writer.Write(byte.Parse("1A", System.Globalization.NumberStyles.HexNumber));
            writer.Close();
            stream.Close();

            return(true);
        }
        //Экспорт таблицы 2 в dbf
        public static bool ExportUnionReportT2ToDbf(string path, List <ExportUnionReportT2> export, string fileNameDbf, out string error)
        {
            error = string.Empty;
            if (path == string.Empty)
            {
                error = "path == string.Empty";
                return(false);
            }
            if (!Directory.Exists(path))
            {
                error = "!Directory.Exists(path)";
                return(false);
            }
            if (export == null)
            {
                error = "export == null";
                return(false);
            }
            string pathToTable = path + "\\" + fileNameDbf + ".dbf";

            try
            {
                File.Delete(pathToTable);
            }
            catch (Exception exc)
            {
                error = exc.Message;
                return(false);
            }

            var encoding = Encoding.GetEncoding(1251);
            var stream   = new FileStream(pathToTable, FileMode.Create);
            var writer   = new BinaryWriter(stream);

            var columns = GetFieldDbfUnionReportT2();
            var header  = new DbfHeader(export.Count, columns.Count, DbfFileFormat.GetRecordLength(columns), encoding);

            writer.Write(IRI.Ket.IO.BinaryStream.StructureToByteArray(header));
            foreach (DbfFieldDescriptor item in columns)
            {
                writer.Write(IRI.Ket.IO.BinaryStream.StructureToByteArray(item));
            }
            //Terminator
            writer.Write(byte.Parse("0D", System.Globalization.NumberStyles.HexNumber));

            foreach (var record in export)
            {
                writer.Write(byte.Parse("20", System.Globalization.NumberStyles.HexNumber));

                byte[] temp  = null;
                string value = null;
                //1 NP
                temp  = new byte[columns.Find(rec => rec.Name == "NP").Length];
                value = record.NP.ToString();
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //2 PERIOD
                temp  = new byte[columns.Find(rec => rec.Name == "PERIOD").Length];
                value = record.PERIOD.ToString();
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //3 RIK
                temp  = new byte[columns.Find(rec => rec.Name == "RIK").Length];
                value = record.RIK.ToString();
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //4 KOD
                temp  = new byte[columns.Find(rec => rec.Name == "KOD").Length];
                value = record.KOD;
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //5 TYP
                temp  = new byte[columns.Find(rec => rec.Name == "TYP").Length];
                value = record.TYP.ToString();
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //6 TIN
                temp  = new byte[columns.Find(rec => rec.Name == "TIN").Length];
                value = record.TIN;
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //7 S_NAR
                temp  = new byte[columns.Find(rec => rec.Name == "S_NAR").Length];
                value = record.S_NAR.ToString().Replace(',', '.');
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //8 S_DOX
                temp  = new byte[columns.Find(rec => rec.Name == "S_DOX").Length];
                value = record.S_DOX.ToString().Replace(',', '.');
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //9 S_TAXN
                temp  = new byte[columns.Find(rec => rec.Name == "S_TAXN").Length];
                value = record.S_TAXN.ToString().Replace(',', '.');
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //10 S_TAXP
                temp  = new byte[columns.Find(rec => rec.Name == "S_TAXP").Length];
                value = record.S_TAXP.ToString().Replace(',', '.');
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //11 OZN_DOX
                temp  = new byte[columns.Find(rec => rec.Name == "OZN_DOX").Length];
                value = record.OZN_DOX.ToString().Replace(',', '.');
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //12 D_PRIYN
                temp  = new byte[columns.Find(rec => rec.Name == "D_PRIYN").Length];
                value = record.D_PRIYN.ToString("yyyyMMdd");
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                ////13 D_ZVILN
                temp  = new byte[columns.Find(rec => rec.Name == "D_ZVILN").Length];
                value = record.D_ZVILN.ToString("yyyyMMdd");
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //14 OZN_PILG
                temp  = new byte[columns.Find(rec => rec.Name == "OZN_PILG").Length];
                value = record.OZN_PILG.ToString();
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //15 OZNAKA
                temp  = new byte[columns.Find(rec => rec.Name == "OZNAKA").Length];
                value = record.OZNAKA.ToString();
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //16 A051
                temp  = new byte[columns.Find(rec => rec.Name == "A051").Length];
                value = record.A051.ToString();
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //17 A05
                temp  = new byte[columns.Find(rec => rec.Name == "A05").Length];
                value = record.A05.ToString();
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
            }
            writer.Write(byte.Parse("1A", System.Globalization.NumberStyles.HexNumber));
            writer.Close();
            stream.Close();

            return(true);
        }
        //Экспорт таблицы 1 в dbf
        public static bool ExportUnionReportT1ToDbf(string path, List <ExportUnionReportT1> export, string fileNameDbf, out string error)
        {
            error = string.Empty;
            if (path == string.Empty)
            {
                error = "path == string.Empty";
                return(false);
            }
            if (!Directory.Exists(path))
            {
                error = "!Directory.Exists(path)";
                return(false);
            }
            if (export == null)
            {
                error = "export == null";
                return(false);
            }
            string pathToTable = path + "\\" + fileNameDbf + ".dbf";

            try
            {
                File.Delete(pathToTable);
            }
            catch (Exception exc)
            {
                error = exc.Message;
                return(false);
            }

            var encoding = Encoding.GetEncoding(1251);
            var stream   = new FileStream(pathToTable, FileMode.Create);
            var writer   = new BinaryWriter(stream);

            var columns = GetFieldDbfUnionReportT1();
            var header  = new DbfHeader(export.Count, columns.Count, DbfFileFormat.GetRecordLength(columns), encoding);

            writer.Write(IRI.Ket.IO.BinaryStream.StructureToByteArray(header));
            foreach (DbfFieldDescriptor item in columns)
            {
                writer.Write(IRI.Ket.IO.BinaryStream.StructureToByteArray(item));
            }
            //Terminator
            writer.Write(byte.Parse("0D", System.Globalization.NumberStyles.HexNumber));

            foreach (var record in export)
            {
                // All dbf field records begin with a deleted flag field. Deleted - 0x2A (asterisk) else 0x20 (space)
                writer.Write(byte.Parse("20", System.Globalization.NumberStyles.HexNumber));

                byte[] temp  = null;
                string value = null;
                //1 PERIOD_M
                temp  = new byte[columns.Find(rec => rec.Name == "PERIOD_M").Length];
                value = record.PERIOD_M.ToString();
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //2 PERIOD_M
                temp  = new byte[columns.Find(rec => rec.Name == "PERIOD_Y").Length];
                value = record.PERIOD_Y.ToString();
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //3 UKR_GROMAD
                temp  = new byte[columns.Find(rec => rec.Name == "UKR_GROMAD").Length];
                value = record.UKR_GROMAD.ToString();
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //4 ST
                temp  = new byte[columns.Find(rec => rec.Name == "ST").Length];
                value = record.ST.ToString();
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //5 NUMIDENT
                temp  = new byte[columns.Find(rec => rec.Name == "NUMIDENT").Length];
                value = record.NUMIDENT;
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //6 LN
                temp  = new byte[columns.Find(rec => rec.Name == "LN").Length];
                value = record.LN;
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //7 NM
                temp  = new byte[columns.Find(rec => rec.Name == "NM").Length];
                value = record.NM;
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //8 NM
                temp  = new byte[columns.Find(rec => rec.Name == "FTN").Length];
                value = record.FTN;
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //9 ZO
                temp  = new byte[columns.Find(rec => rec.Name == "ZO").Length];
                value = record.ZO.ToString();
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //10 PAY_TP
                temp  = new byte[columns.Find(rec => rec.Name == "PAY_TP").Length];
                value = record.PAY_TP.ToString();
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //11 PAY_TP
                temp  = new byte[columns.Find(rec => rec.Name == "PAY_MNTH").Length];
                value = record.PAY_MNTH.ToString();
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //12 PAY_YEAR
                temp  = new byte[columns.Find(rec => rec.Name == "PAY_YEAR").Length];
                value = record.PAY_YEAR.ToString();
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //13 KD_NP
                temp  = new byte[columns.Find(rec => rec.Name == "KD_NP").Length];
                value = record.KD_NP.ToString();
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //14 KD_NZP
                temp  = new byte[columns.Find(rec => rec.Name == "KD_NZP").Length];
                value = record.KD_NZP.ToString();
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //14 KD_PTV
                temp  = new byte[columns.Find(rec => rec.Name == "KD_PTV").Length];
                value = record.KD_PTV.ToString();
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //14 KD_VP
                temp  = new byte[columns.Find(rec => rec.Name == "KD_VP").Length];
                value = record.KD_VP.ToString();
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //15 SUM_TOTAL
                temp  = new byte[columns.Find(rec => rec.Name == "SUM_TOTAL").Length];
                value = record.SUM_TOTAL.ToString().Replace(',', '.');
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //16 SUM_MAX
                temp  = new byte[columns.Find(rec => rec.Name == "SUM_MAX").Length];
                value = record.SUM_MAX.ToString().Replace(',', '.');
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //17 SUM_DIFF
                temp  = new byte[columns.Find(rec => rec.Name == "SUM_DIFF").Length];
                value = record.SUM_DIFF.ToString().Replace(',', '.');
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //18 SUM_INS
                temp  = new byte[columns.Find(rec => rec.Name == "SUM_INS").Length];
                value = record.SUM_INS.ToString().Replace(',', '.');
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //19 SUM_NARAH
                temp  = new byte[columns.Find(rec => rec.Name == "SUM_NARAH").Length];
                value = record.SUM_NARAH.ToString().Replace(',', '.');
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //20 OTK
                temp  = new byte[columns.Find(rec => rec.Name == "OTK").Length];
                value = record.OTK.ToString();
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //21 EXP
                temp  = new byte[columns.Find(rec => rec.Name == "EXP").Length];
                value = record.EXP.ToString();
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //22 NRC
                temp  = new byte[columns.Find(rec => rec.Name == "NRC").Length];
                value = record.NRC.ToString();
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //23 NRM
                temp  = new byte[columns.Find(rec => rec.Name == "NRM").Length];
                value = record.NRM.ToString();
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                temp  = new byte[columns.Find(rec => rec.Name == "OZN").Length];
                value = record.OZN.ToString();
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
            }
            writer.Write(byte.Parse("1A", System.Globalization.NumberStyles.HexNumber));
            writer.Close();
            stream.Close();

            return(true);
        }
Exemple #6
0
        //Экспорт таблицы 6 ЕСВ в dbf
        public static bool ExportDFToDbf(string path, int qrt, List <ExportDFRec> export, out string error)
        {
            error = string.Empty;
            if (path == string.Empty)
            {
                error = "path == string.Empty";
                return(false);
            }
            if (!Directory.Exists(path))
            {
                error = "!Directory.Exists(path)";
                return(false);
            }
            if (qrt <= 0)
            {
                error = "qrt <= 0";
                return(false);
            }
            if (qrt > 4)
            {
                error = "qrt > 4";
                return(false);
            }

            if (export == null)
            {
                error = "export == null";
                return(false);
            }

            string pathToDBF = path + "\\" + _nameDF + "." + qrt;

            try
            {
                File.Delete(pathToDBF);
            }
            catch (Exception exc)
            {
                error = exc.Message;
                return(false);
            }

            Encoding encoding = Encoding.GetEncoding(1251);

            Stream       stream = new FileStream(pathToDBF, FileMode.Create);
            BinaryWriter writer = new BinaryWriter(stream);

            List <DbfFieldDescriptor> columns = GetFieldDbfDF();

            DbfHeader header = new DbfHeader(export.Count, columns.Count, DbfFileFormat.GetRecordLength(columns), encoding);

            writer.Write(IRI.Ket.IO.BinaryStream.StructureToByteArray(header));

            foreach (DbfFieldDescriptor item in columns)
            {
                writer.Write(IRI.Ket.IO.BinaryStream.StructureToByteArray(item));
            }

            //Terminator
            writer.Write(byte.Parse("0D", System.Globalization.NumberStyles.HexNumber));

            foreach (ExportDFRec record in export)
            {
                // All dbf field records begin with a deleted flag field. Deleted - 0x2A (asterisk) else 0x20 (space)
                writer.Write(byte.Parse("20", System.Globalization.NumberStyles.HexNumber));

                byte[] temp  = null;
                string value = null;
                //1 NP
                temp  = new byte[columns.Find(rec => rec.Name == "NP").Length];
                value = record.NP.ToString();
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //2 PERIOD
                temp  = new byte[columns.Find(rec => rec.Name == "PERIOD").Length];
                value = record.PERIOD.ToString();
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //3 RIK
                temp  = new byte[columns.Find(rec => rec.Name == "RIK").Length];
                value = record.RIK.ToString();
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //4 KOD
                temp  = new byte[columns.Find(rec => rec.Name == "KOD").Length];
                value = record.KOD;
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //5 TYP
                temp  = new byte[columns.Find(rec => rec.Name == "TYP").Length];
                value = record.TYP.ToString();
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //6 TIN
                temp  = new byte[columns.Find(rec => rec.Name == "TIN").Length];
                value = record.TIN;
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //7 S_NAR
                temp  = new byte[columns.Find(rec => rec.Name == "S_NAR").Length];
                value = record.S_NAR.ToString().Replace(',', '.');
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //8 S_DOX
                temp  = new byte[columns.Find(rec => rec.Name == "S_DOX").Length];
                value = record.S_DOX.ToString().Replace(',', '.');
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //9 S_TAXN
                temp  = new byte[columns.Find(rec => rec.Name == "S_TAXN").Length];
                value = record.S_TAXN.ToString().Replace(',', '.');
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //10 S_TAXP
                temp  = new byte[columns.Find(rec => rec.Name == "S_TAXP").Length];
                value = record.S_TAXP.ToString().Replace(',', '.');
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //11 OZN_DOX
                temp  = new byte[columns.Find(rec => rec.Name == "OZN_DOX").Length];
                value = record.OZN_DOX.ToString().Replace(',', '.');
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //12 D_PRIYN
                temp  = new byte[columns.Find(rec => rec.Name == "D_PRIYN").Length];
                value = record.D_PRIYN.ToString("yyyyMMdd");
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                ////13 D_ZVILN
                temp  = new byte[columns.Find(rec => rec.Name == "D_ZVILN").Length];
                value = record.D_ZVILN.ToString("yyyyMMdd");
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //14 OZN_PILG
                temp  = new byte[columns.Find(rec => rec.Name == "OZN_PILG").Length];
                value = record.OZN_PILG.ToString();
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
                //15 OZNAKA
                temp  = new byte[columns.Find(rec => rec.Name == "OZNAKA").Length];
                value = record.OZNAKA.ToString();
                encoding.GetBytes(value, 0, value.Length, temp, 0);
                writer.Write(temp);
            }
            writer.Write(byte.Parse("1A", System.Globalization.NumberStyles.HexNumber));
            writer.Close();
            stream.Close();
            return(true);
        }