//строка с данными одной страны
        static private string GetStringForDatabase(CountryData data)
        {
            //строка данных об одной стране
            string dataStr = data.Name + ",";

            //патенты
            dataStr = dataStr + CheckValue(data.Total_Patent_Applications);

            //торговые марки
            dataStr = dataStr + CheckValue(data.Total_Trademark_Applications);

            //экспорт высоких технологий
            dataStr = dataStr + CheckValue(data.High_Tech_Exports);

            //экспорт высоких технологий (в долларах)
            dataStr = dataStr + CheckValue(data.High_Tech_Exports_USD);

            //затраты на R&D
            dataStr = dataStr + CheckValue(data.Res_And_Dev_Expenditure);

            //плата за интеллектуальную собственность
            dataStr = dataStr + CheckValue(data.IntelPropertyPayment);

            return(dataStr);
        }
        //получить информацию о странах из database.csv
        static private List <CountryData> GetCountryData(string databasePath)
        {
            List <CountryData> data = new List <CountryData>();

            //прочитать всю информацию из файла данных
            try
            {
                using (StreamReader sr = new StreamReader(databasePath))
                {
                    string line;
                    while ((line = sr.ReadLine()) != null)
                    {
                        string[] dataParts = line.Split(',');
                        //не заголовок
                        if (dataParts[0] != "country")
                        {
                            CountryData countryData = new CountryData();
                            countryData.Name = dataParts[0];
                            //проверка, были ли уже внесены данные

                            //патенты
                            if ((dataParts[1] != "NULL") && (dataParts[1] != ""))
                            {
                                countryData.Total_Patent_Applications = Convert.ToInt32(dataParts[1]);
                            }
                            else
                            {
                                countryData.Total_Patent_Applications = -1;
                            }
                            //торговые марки
                            if ((dataParts[2] != "NULL") && (dataParts[2] != ""))
                            {
                                countryData.Total_Trademark_Applications = Convert.ToInt32(dataParts[2]);
                            }
                            else
                            {
                                countryData.Total_Trademark_Applications = -1;
                            }
                            //экспорт высоких технологий
                            if ((dataParts[3] != "NULL") && (dataParts[3] != ""))
                            {
                                countryData.High_Tech_Exports = Convert.ToDouble(dataParts[3].Replace('.', ','));
                            }
                            else
                            {
                                countryData.High_Tech_Exports = -1;
                            }
                            //экспорт высоких технологий (в долларах)
                            if ((dataParts[4] != "NULL") && (dataParts[4] != ""))
                            {
                                countryData.High_Tech_Exports_USD = Convert.ToDouble(dataParts[4].Replace('.', ','));
                            }
                            else
                            {
                                countryData.High_Tech_Exports_USD = -1;
                            }
                            //затраты на R&D
                            if ((dataParts[5] != "NULL") && (dataParts[5] != ""))
                            {
                                countryData.Res_And_Dev_Expenditure = Convert.ToDouble(dataParts[5].Replace('.', ','));
                            }
                            else
                            {
                                countryData.Res_And_Dev_Expenditure = -1;
                            }
                            //плата за интеллектуальную собственность
                            if ((dataParts[6] != "NULL") && (dataParts[6] != ""))
                            {
                                countryData.IntelPropertyPayment = Convert.ToDouble(dataParts[6].Replace('.', ','));
                            }
                            else
                            {
                                countryData.IntelPropertyPayment = -1;
                            }

                            //добавление страны с её данными в список
                            data.Add(countryData);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                string exception = ex.ToString();
            }

            return(data);
        }