【发布时间】:2015-02-13 02:44:00
【问题描述】:
Sub ReadEntireFileAndPlaceOnWorksheet()
Dim X As Long, Ys As Long, FileNum As Long, TotalFile As String, FileName As String, Result() As String, Lines() As String, rng As Range, i As Long, used As Range, lc As Long
FileName = "C:\Users\MEA\Documents\ELCM2\DUMMY_FILE.dat"
FileNum = FreeFile
Open FileName For Binary As #FileNum
TotalFile = Space(LOF(FileNum))
Get #FileNum, , TotalFile
Close #FileNum
Lines = Split(TotalFile, vbNewLine)
Ys = 1
lc = Sheet3.Cells(1, Columns.Count).End(xlToLeft).Column
For X = 1 To UBound(Lines)
Ys = Ys + 1
ReDim Preserve Result(1 To Ys)
Result(Ys) = "'" & Lines(X - 1)
Set used = Sheet1.Cells(Sheet1.Rows.Count, lc + 1).End(xlUp).Rows
Set rng = used.Offset(1, 0)
rng.Value = Result(Ys)
Next
End Sub
我正在尝试在 .dat(二进制文件)中查找一些数据。数据应如下所示:
MiHo14.dat
MDF 3.00 TGT 15.0
Time: 06:40:29 PM
Recording Duration: 00:05:02
Database: DB
Experiment: Min Air take
Workspace: MINAIR
Devices: ETKC:1,ETKC:2
Program Description: 0delivupd2
Module_delivupd2
WP: _AWD_5
RP: _AWD
§@
Minimum intake - + revs - Downward gear
我目前从 .dat 文件中提取所有数据并放在 Excel 文件中的代码如下所示:
MiHo14.dat
MDF 3.00 TGT 15.0
Time: 06:40:29 PM
Recording Duration: 00:05:02
Database: DB
Experiment: Min Air take
Workspace: MINAIR
Devices: ETKC:1,ETKC:2
Program Description: 0delivupd2
Module_delivupd2
WP: _AWD_5
RP: _AWD
§@
Minimum intake - + revs - Downward gear
Bã|ŽA…@@,s~?
B{À¿…@@@Ý‚Iá
Á<
"@²n¢”N@ÇÿÈÿj
Ð=“SØ•N@ÇÿÈÿj
à¨. —N@ÇÿÈÿj
8²œg˜N@ÇÿÈÿj
0NI,¯™N@ÈÿÈÿj
Ðä$öšN@ÈÿÈÿj
@Q›=œN@ÈÿÈÿj
Пe…N@ÇÿÈÿj
GàÍžN@ÇÿÈÿj"
etc....
我需要知道如何使用 instr 函数通过识别包含“:”的行来提取信息,另一个挑战是数据中有最后一行是用户评论这个用户评论基本上可以是任何文本,我需要能够在不提取整个文件的情况下提取它,因为您可以看到它附带了很多符号(乱码)。
【问题讨论】:
-
在您的帖子中显示您尝试识别合格行的代码。
-
我得到一个下标超出范围错误,为了解释我的想法,我想我告诉它要做的是检查是否存在 : 存在,如果存在则将其添加到结果中?我是对的还是完全不正确的?
-
@RonRosenfeld 您好,很抱歉再次打扰您!不幸的是,到目前为止,没有一个答案能够成功解决这个问题。但是,我设法找到了一份详细说明二进制文件结构的文档,不幸的是,我对这种事情的掌握有限,但是如果我可以将 PDF 发送给您,也许您可以从中获取信息的位置可以建议如何更改代码以获得所需的信息?
-
如果您可以发布指向 pdf 的链接,我可以访问它。同样重要的是,当您尝试通过例程运行它时,该文件的副本会导致下标超出范围错误。您可以将其放在公共网站上,例如 DropBox 或 OneDrive,然后在此处发布链接。
-
app.box.com/s/qd4oxba6mr40itec5s7meeghhpjh7tjz 是文件的链接,app.box.com/s/ftoqyw5ov9yeegfyhxb2n8edrn9xlmwi 是 PDF 文件的链接。只是为了给你一个更新我不再有下标错误,我已经设法克服这个问题是我仍然在我不需要的 excel 表中得到这个额外的垃圾,我希望你能告诉我如何指定宏以复制该 pdf 的 HD/PR/TX 块(第 3.4/3.5/3.6 节)的行。欢呼