Пример #1
0
        /// <summary>
        /// 转换文件名
        /// </summary>
        /// <returns>是否转换成功</returns>
        private bool ConvertFileName()
        {
            if (cboConverterType.SelectedIndex == -1)
            {
                return(false);
            }
            if (SourceFilePath == String.Empty || !File.Exists(SourceFilePath))
            {
                return(false);
            }
            ConverterMaps converterMaps = (ConverterMaps)cboConverterMapsList.SelectedItem;
            Converter     converter     = (Converter)cboConverterType.SelectedItem;
            string        destFilePath  = ConverterMapsList.ConvertText(SourceFilePath, converterMaps.Maps, converter.SourceMapId, converter.DestMapId);

            if (SourceFilePath == destFilePath)
            {
                return(true);
            }
            else
            {
                try
                {
                    File.Copy(SourceFilePath, destFilePath, true);
                    File.Delete(SourceFilePath);
                }
                catch (Exception)
                {
                    return(false);
                }
                SourceFilePath   = destFilePath;
                lblFilePath.Text = SourceFilePath;
                return(true);
            }
        }
Пример #2
0
        /// <summary>
        /// 转换文本
        /// </summary>
        private void ConvertSourceToDestText()
        {
            if (cboConverterType.SelectedIndex == -1)
            {
                return;
            }
            string        sourceContent = txtSource.Text;
            string        destContent   = "";
            ConverterMaps converterMaps = (ConverterMaps)cboConverterMapsList.SelectedItem;
            Converter     converter     = (Converter)cboConverterType.SelectedItem;

            if (cboRegex.Text.Trim() != String.Empty)
            {
                Regex regex = null;
                try
                {
                    regex = new Regex(cboRegex.Text, RegexOptions.IgnoreCase | RegexOptions.Multiline);
                }
                catch (Exception)
                {
                    ShowErrorMsg("正则表达式错误!");
                    cboRegex.SelectAll();
                    cboRegex.Focus();
                    return;
                }
                if (chkIsExclude.Checked)
                {
                    StringBuilder strBuilder = new StringBuilder(ConverterMapsList.ConvertText(sourceContent, converterMaps.Maps,
                                                                                               converter.SourceMapId, converter.DestMapId));
                    foreach (Match match in regex.Matches(sourceContent))
                    {
                        if (match.Value == String.Empty)
                        {
                            continue;
                        }
                        strBuilder.Replace(ConverterMapsList.ConvertText(match.Value, converterMaps.Maps, converter.SourceMapId, converter.DestMapId),
                                           match.Value);
                    }
                    destContent = strBuilder.ToString();
                }
                else
                {
                    destContent = regex.Replace(sourceContent, match =>
                                                ConverterMapsList.ConvertText(match.Value, converterMaps.Maps, converter.SourceMapId, converter.DestMapId));
                }
            }
            else
            {
                destContent = ConverterMapsList.ConvertText(sourceContent, converterMaps.Maps, converter.SourceMapId, converter.DestMapId);
            }
            txtDest.Text = destContent;
        }
Пример #3
0
 /// <summary>
 /// 读取程序配置
 /// </summary>
 private void ReadConfig()
 {
     if (!AppConfig.Read())
     {
         ShowErrorMsg("读取配置文件失败!");
     }
     for (int i = 0; i < cboConverterMapsList.Items.Count; i++)
     {
         ConverterMaps converterMaps = (ConverterMaps)cboConverterMapsList.Items[i];
         if (AppConfig.ConverterMapsPath.ToLower() == Path.GetFileName(converterMaps.ConfigPath.ToLower()))
         {
             cboConverterMapsList.SelectedIndex = i;
             break;
         }
     }
     try
     {
         cboConverterType.SelectedIndex = AppConfig.ConvertType;
     }
     catch (ArgumentOutOfRangeException)
     {
         cboConverterType.SelectedIndex = -1;
     }
     try
     {
         cboConvertMethod.SelectedIndex = AppConfig.ConvertMethod;
     }
     catch (ArgumentOutOfRangeException)
     {
         cboConvertMethod.SelectedIndex = 0;
     }
     try
     {
         cboSaveEncoding.SelectedIndex = AppConfig.SaveEncoding;
     }
     catch (ArgumentOutOfRangeException)
     {
         cboSaveEncoding.SelectedIndex = 0;
     }
     chkIsConvertFileName.Checked = AppConfig.IsConvertFileName;
     chkIsExclude.Checked         = AppConfig.IsExclude;
     txtFileExt.Text               = AppConfig.FileExt;
     chkIsTopMost.Checked          = AppConfig.IsTopMost;
     cboReadEncoding.SelectedIndex = 0;
 }
Пример #4
0
        /// <summary>
        /// 当字符对照表下拉列表选择项改变时发生
        /// </summary>
        private void cboConverterMapsList_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (cboConverterMapsList.SelectedIndex == -1 ||
                Tools.CheckControlDataSourceIsPreparing(cboConverterMapsList.Tag))
            {
                return;
            }
            ConverterMaps converterMaps = (ConverterMaps)cboConverterMapsList.SelectedItem;

            cboConverterType.Tag = true;
            BindingSource bs = new BindingSource();

            bs.DataSource = converterMaps.Converters.Values;
            cboConverterType.DataSource    = bs;
            cboConverterType.DisplayMember = "Name";
            cboConverterType.ValueMember   = "Id";
            cboConverterType.SelectedIndex = 0;
            cboConverterType.Tag           = false;
            cboConverterType_SelectedIndexChanged(null, null);
            AppConfig.ConverterMapsPath = cboConverterMapsList.SelectedValue.ToString();
        }