C#实现命令行传参:运行程序,hex1,hex2,result,程序读取两个长度不同hex文件的第一列内容,每一行内容输出一个对比结果,一致true,不一致false,并将内容和对比结果写入到xlsx文件
时间: 2024-10-23 14:10:37 浏览: 25
在C#中,你可以使用`System.Console`类处理命令行参数,`System.IO.File`类读取hex文件的内容,以及`EPPlus`库(或者`Microsoft.Office.Interop.Excel`)来操作Excel文件。下面是一个简单的步骤说明:
1. **获取命令行参数**:
使用`args`数组接收命令行参数,如`string hex1 = args[0]`, `string hex2 = args[1]`, 和 `string resultFile = args[2]`。
```csharp
string[] args = Environment.GetCommandLineArgs();
string hex1 = args[1]; // 假设第一个参数是hex1
string hex2 = args[2]; // 第二个参数是hex2
string resultFile = args[3]; // 结果文件名
```
2. **读取Hex文件内容**:
使用`File.ReadAllLines`读取文件的第一列(假设每行都是独立的数据)。
```csharp
List<string> hex1Data = File.ReadAllLines(hex1).Select(line => line.Split(':')[0]).ToList();
List<string> hex2Data = File.ReadAllLines(hex2).Select(line => line.Split(':')[0]).ToList();
```
3. **比较数据并写入结果**:
遍历两个列表,逐行对比,如果内容一致则结果为`true`,不一致则为`false`。然后将结果和对应的数据写入到Excel文件中。
```csharp
using (var package = new ExcelPackage(new FileInfo(resultFile)))
{
var ws = package.Workbook.Worksheets.Add("Comparison");
for (int i = 0; i < Math.Min(hex1Data.Count, hex2Data.Count); i++)
{
string hex1Value = hex1Data[i];
string hex2Value = hex2Data[i];
bool isMatch = hex1Value == hex2Value;
ws.Cells[i + 1, 1].Value = hex1Value;
ws.Cells[i + 1, 2].Value = hex2Value;
ws.Cells[i + 1, 3].Value = isMatch ? "True" : "False";
}
}
```
4. **保存Excel文件**:
最后,保存整个Excel包。
```csharp
package.Save();
```
阅读全文