我使用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();
谢谢