我使用 dd 命令从磁带中提取了一个原始数据文件
之后,我设法用 Bless HexEditor 读取了提取的数据,我发现在偏移量 0x200000 处存储了一个表。
我想提取这些数据并将其导入 Excel 或 CSV 文件:
这是以十六进制格式提取的数据及其以 unsigned int little endian 表示的示例:
//Hex Not. //Little-Endian unsigned int 32
10 00 00 00 // 84 (Ref Number)
54 00 00 00 // 70185301 (Ref Number)
55 F1 2E 04 // 20070306 (Date)
A2 3F 32 01 // 15144184 (Time)
F8 14 E7 00 // 20070306 (Date)
A2 3F 32 01 // 15491037 (Time)
DD 5F EC 00 // 1
01 00 00 00 // 1
01 00 00 00 // 4486656
00 76 44 00 // 492
EC 01 00 00 // 1
01 00 00 00 // 814185724
FC 7C 87 30 // 814185728
00 7D 87 30 // 814185732
04 7D 87 30 // 16
表的新行
10 00 00 00 // 84
54 00 00 00 // 70185301
55 F1 2E 04 // 20070306
A2 3F 32 01 // 15491037
DD 5F EC 00 // 20070306
A2 3F 32 01 // 15534889
29 0B ED 00 // 18
12 00 00 00 // 1
01 00 00 00 // 4486656
00 76 44 00 // 492
EC 01 00 00 // 1
01 00 00 00 // 814185724
FC 7C 87 30 // 814185728
00 7D 87 30 // 814185732
04 7D 87 30 // 16
等等.....
我的问题是:
1)你能从这段转换后的数据开始理解原始文件是如何编码的吗?
2)如何转换这个原始文件,以便创建一个按行排序的数据的 excel 或 csv 文档?
这是我在 Java 中的尝试:
File fileInputString = new File(inputFileField.getText()); //Get the file in SWING
FileInputStream fin = new FileInputStream(fileInputString);
FileOutputStream out = new FileOutputStream(fileDirectoryFolder.getText() +"/"+ fileInputString.getName()); //Create the new converted file
byte[] fileContent = new byte[(int)fileInputString.length()]; // import the raw data length
fin.read(fileContent); // read the data
for(int i = 0; i < fileContent.length; i++){
out.write(fileContent[i]); // write the data
}
out.close();
谢谢