private async void Output_ks_Click(object sender, RoutedEventArgs e) { loadsave loadsave = new loadsave(); List <string> savetext = new List <string>(); if (file_info.Text.Contains(".ks")) { for (int i = 0; i < ks_perline.Count; i++) { savetext.Add(ks_perline[i].texts_dst); } } else if (file_info.Text.Contains(".out.txt")) { for (int i = 0; i < bgi_perline.Count; i++) { savetext.Add(string.Format("{0}{1}", bgi_perline[i].text_address, bgi_perline[i].texts_dst)); } } string status = await loadsave.save_ksasync(savetext); ContentDialog result = new ContentDialog() { Title = "结果", Content = status, PrimaryButtonText = "关闭" }; await result.ShowAsync(); }
private async void Import_ks_Click(object sender, RoutedEventArgs e) { loadsave loadsave = new loadsave(); parse_bytes parse_bytes = new parse_bytes(); // 打开文件 files files = await loadsave.load_ksasync(); if (files.filename != "empty" && files.srcode.Count() != 0) { string encoding = parse_bytes.DetectUnicode(files.srcode); string src2; //ANSI 处理 if (encoding == "ansi") { ansitake ansitake_dlg = new ansitake(); ansitake_dlg.src = files.srcode; await ansitake_dlg.ShowAsync(); encoding = ansitake_dlg.cp; } //还原二进制为文本 src2 = parse_bytes.byte2str(files.srcode, encoding); //判断 .ks 文件类型 if (files.filename.Contains(".ks")) { parse_ks_perline parse_ks_perline = new parse_ks_perline(); ks_perline = parse_ks_perline.parsestr(src2); //按行拆分文本 for (int i = 0; i < ks_perline.Count; i++) { //根据每行内容,进行上色 if (ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 5)) { ks_perline[i].textcolor = new SolidColorBrush(this.ActualTheme == ElementTheme.Dark ? ks_perline[i].text_cd : ks_perline[i].text_cl); } else { //由于 this.RequestedTheme 会返回 ElementTheme.Default,故原方法不可用 ks_perline[i].textcolor = new SolidColorBrush(Application.Current.RequestedTheme == ApplicationTheme.Dark ? ks_perline[i].text_cd : ks_perline[i].text_cl); } } file_info.Text = files.filename; if (textonly == true) { //过滤代码等内容,只留下文本 filter_ks_perline = parse_ks_perline.filter_perline(ks_perline); text_list.ItemsSource = filter_ks_perline; text_list2.ItemsSource = filter_ks_perline; } else { //原样输出 text_list.ItemsSource = ks_perline; text_list2.ItemsSource = ks_perline; } bot_p_n.IsEnabled = true; bot_p_n2.IsEnabled = true; text_src.IsEnabled = true; text_src2.IsEnabled = true; text_dst.IsEnabled = true; text_dst2.IsEnabled = true; } else if (files.filename.Contains(".out.txt")) { parse_bgi_perline parse_bgi_perline = new parse_bgi_perline(); bgi_perline = parse_bgi_perline.parsestr(src2); file_info.Text = files.filename; text_list.ItemsSource = bgi_perline; text_list2.ItemsSource = bgi_perline; for (int i = 0; i < bgi_perline.Count; i++) { //根据每行内容,进行上色 if (ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 5)) { bgi_perline[i].textcolor = new SolidColorBrush(this.ActualTheme == ElementTheme.Dark ? bgi_perline[i].text_cd : bgi_perline[i].text_cl); } else { //由于 this.RequestedTheme 会返回 ElementTheme.Default,故原方法不可用 bgi_perline[i].textcolor = new SolidColorBrush(Application.Current.RequestedTheme == ApplicationTheme.Dark ? bgi_perline[i].text_cd : bgi_perline[i].text_cl); } } bot_p_n.IsEnabled = true; bot_p_n2.IsEnabled = true; text_src.IsEnabled = true; text_src2.IsEnabled = true; text_dst.IsEnabled = true; text_dst2.IsEnabled = true; } else { //如果打开文件的过程被中断(比如:按下了“取消”键),会返回“empty”。 //由于发现打开空白文件的时候会发生错误,所以这里追加判断打开文件的情况。 string err_msg = files.filename == "empty" ? "没有打开文件。" : string.Format("打开了空白的文件:{0}。", files.filename); ContentDialog err_dlg = new ContentDialog() { Title = "发生错误", Content = err_msg, PrimaryButtonText = "关闭" }; await err_dlg.ShowAsync(); } } }