This commit is contained in:
Chenx221 2023-10-06 13:09:51 +08:00
parent 8a1f2b5a7b
commit c7cd4794c5
3 changed files with 73 additions and 53 deletions

View File

@ -0,0 +1,21 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AsmrManage
{
public class AsmrData
{
public string file_rj_str { get; set; } = string.Empty;
public string file_d_str { get; set; } = string.Empty;
public string file_vj_str { get; set; } = string.Empty;
public string file_nonhrj_str { get; set; } = string.Empty;
public string db_rj_str { get; set; } = string.Empty;
public string db_d_str { get; set; } = string.Empty;
public string db_vj_str { get; set; } = string.Empty;
public string db_nonhrj_str { get; set; } = string.Empty;
}
}

View File

@ -5,6 +5,7 @@ using OfficeOpenXml;
using System.Data.SQLite; using System.Data.SQLite;
using System.Diagnostics; using System.Diagnostics;
using Microsoft.VisualBasic; using Microsoft.VisualBasic;
using System.Collections.Generic;
namespace AsmrManage namespace AsmrManage
{ {
@ -449,6 +450,13 @@ namespace AsmrManage
label28.Text = vjData.Count.ToString(); label28.Text = vjData.Count.ToString();
label29.Text = nonhrjData.Count.ToString(); label29.Text = nonhrjData.Count.ToString();
SaveDataP3(rjDirectories, dDirectories, vjDirectories, nonhrjDirectories, rjData, dData, vjData, nonhrjData);
Logp3("¶ÁÈ¡Íê±Ï");
}
private static void SaveDataP3(List<string> rjDirectories, List<string> dDirectories, List<string> vjDirectories, List<string> nonhrjDirectories, List<string> rjData, List<string> dData, List<string> vjData, List<string> nonhrjData)
{
NaturalOrderComparer comparer = new NaturalOrderComparer(); NaturalOrderComparer comparer = new NaturalOrderComparer();
rjDirectories.Sort(comparer); rjDirectories.Sort(comparer);
dDirectories.Sort(comparer); dDirectories.Sort(comparer);
@ -458,10 +466,17 @@ namespace AsmrManage
dData.Sort(comparer); dData.Sort(comparer);
vjData.Sort(comparer); vjData.Sort(comparer);
nonhrjData.Sort(comparer); nonhrjData.Sort(comparer);
Program.data ??= new AsmrData();
Logp3("读取完毕"); Program.data.file_rj_str = string.Join(Environment.NewLine, rjDirectories);
Program.data.file_d_str = string.Join(Environment.NewLine, dDirectories);
Program.data.file_vj_str = string.Join(Environment.NewLine, vjDirectories);
Program.data.file_nonhrj_str = string.Join(Environment.NewLine, nonhrjDirectories);
Program.data.db_rj_str = string.Join(Environment.NewLine, rjData);
Program.data.db_d_str = string.Join(Environment.NewLine, dData);
Program.data.db_vj_str = string.Join(Environment.NewLine, vjData);
Program.data.db_nonhrj_str = string.Join(Environment.NewLine, nonhrjData);
} }
private void Logp3(string message) //p3 log function private void Logp3(string message) //p3 log function
{ {
richTextBox2.AppendText(message + Environment.NewLine); richTextBox2.AppendText(message + Environment.NewLine);
@ -470,61 +485,44 @@ namespace AsmrManage
private void button18_Click(object sender, EventArgs e) //p3±È½Ï private void button18_Click(object sender, EventArgs e) //p3±È½Ï
{ {
bool diff_rj_enable = checkBox9.Checked; Program.data ??= new AsmrData();
bool diff_d_enable = checkBox10.Checked; if (checkBox9.Checked)
bool diff_vj_enable = checkBox11.Checked;
bool diff_nonhrj_enable = checkBox12.Checked;
// 假设你有两个 HashSet
HashSet<string> set1 = new HashSet<string>() { "A", "B", "C" };
HashSet<string> set2 = new HashSet<string>() { "B", "C", "D" };
// 将 HashSet 转换为 List也可以选择转换为数组
List<string> list1 = new List<string>(set1);
List<string> list2 = new List<string>(set2);
// 创建一个比较器
//InlineDiffBuilder.Diff();
// 获取差异细节
List<string> addedItems = new List<string>();
List<string> deletedItems = new List<string>();
List<string> modifiedItems = new List<string>();
//foreach (var line in diffModel.Lines)
//{
// if (line.Type == ChangeType.Inserted)
// {
// addedItems.Add(line.Text);
// }
// else if (line.Type == ChangeType.Deleted)
// {
// deletedItems.Add(line.Text);
// }
// else if (line.Type == ChangeType.Modified)
// {
// modifiedItems.Add(line.Text);
// }
//}
// 打印输出差异细节
Console.WriteLine("Added Items:");
foreach (string item in addedItems)
{ {
Console.WriteLine(item); Logp3("# H_RJ²îÒìÇé¿ö:");
DiffContent(Program.data.file_rj_str, Program.data.db_rj_str);
}
if (checkBox10.Checked)
{
Logp3("# H_D²îÒìÇé¿ö:");
DiffContent(Program.data.file_d_str, Program.data.db_d_str);
}
if (checkBox11.Checked)
{
Logp3("# H_VJ²îÒìÇé¿ö:");
DiffContent(Program.data.file_vj_str, Program.data.db_vj_str);
}
if (checkBox12.Checked)
{
Logp3("# NonH_RJ²îÒìÇé¿ö:");
DiffContent(Program.data.file_nonhrj_str, Program.data.db_nonhrj_str);
} }
Console.WriteLine("Deleted Items:"); }
foreach (string item in deletedItems)
{
Console.WriteLine(item);
}
Console.WriteLine("Modified Items:"); private void DiffContent(string before, string after)
foreach (string item in modifiedItems) {
var diff_rj = InlineDiffBuilder.Diff(before, after);
foreach (var line in diff_rj.Lines)
{ {
Console.WriteLine(item); switch (line.Type)
{
case ChangeType.Inserted:
Logp3("+ " + line.Text);
break;
case ChangeType.Deleted:
Logp3("- " + line.Text);
break;
}
} }
} }
} }

View File

@ -6,6 +6,7 @@ namespace AsmrManage
/// The main entry point for the application. /// The main entry point for the application.
/// </summary> /// </summary>
public static AppConfig? config; public static AppConfig? config;
public static AsmrData? data;
[STAThread] [STAThread]
static void Main() static void Main()
{ {