<html>
<head>
<meta content="text/html; charset=windows-1252"
http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<div class="moz-cite-prefix">Hello,<br>
Here is another (fast) implementation. You get directly all the
binary blocs of a file in an output list.<br>
Cheers<br>
Samuel<br>
--------------------<br>
<pre style="font-family:Monospaced;font-style:normal;font-size:12.0;"><big><span style="color:rgb(176,24,19);">function</span> <span style="color:rgb(74,85,219);">[</span><span style="color:rgb(131,67,16);font-weight:bold;">res</span><span style="color:rgb(0,0,0);">, </span><span style="color:rgb(131,67,16);font-weight:bold;">bytes</span><span style="color:rgb(74,85,219);">]</span><span style="color:rgb(92,92,92);">=</span><span style="color:rgb(0,0,0);text-decoration:underline;">getBinaryBlocs</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(131,67,16);font-weight:bold;">data</span><span style="color:rgb(0,0,0);">, </span><span style="color:rgb(131,67,16);font-weight:bold;">startstr</span><span style="color:rgb(0,0,0);">, </span><span style="color:rgb(131,67,16);font-weight:bold;">endstr</span><span style="color:rgb(74,85,219);">)</span>
<span style="color:rgb(0,0,0);">fid</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(50,185,185);">mopen</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(131,67,16);font-weight:bold;">data</span><span style="color:rgb(0,0,0);">,</span> <span style="color:rgb(188,143,143);">'</span><span style="color:rgb(188,143,143);">rb</span><span style="color:rgb(188,143,143);">'</span><span style="color:rgb(74,85,219);">)</span>
<span style="color:rgb(131,67,16);font-weight:bold;">data</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(0,0,0);">mgeti</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(188,143,143);">1e6</span><span style="color:rgb(0,0,0);">,</span> <span style="color:rgb(188,143,143);">'</span><span style="color:rgb(188,143,143);">uc</span><span style="color:rgb(188,143,143);">'</span><span style="color:rgb(0,0,0);">,</span> <span style="color:rgb(0,0,0);">fid</span><span style="color:rgb(74,85,219);">)</span>
<span style="color:rgb(50,185,185);">mclose</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">fid</span><span style="color:rgb(74,85,219);">)</span>
<span style="color:rgb(131,67,16);font-weight:bold;">bytes</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(131,67,16);font-weight:bold;">data</span>
<span style="color:rgb(0,0,0);">s</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(131,67,16);font-weight:bold;">data</span><span style="color:rgb(92,92,92);"><</span><span style="color:rgb(188,143,143);">32</span> <span style="color:rgb(92,92,92);">|</span> <span style="color:rgb(131,67,16);font-weight:bold;">data</span><span style="color:rgb(92,92,92);">></span><span style="color:rgb(188,143,143);">127</span>
<span style="color:rgb(131,67,16);font-weight:bold;">data</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">s</span><span style="color:rgb(74,85,219);">)</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(50,185,185);">ascii</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">.</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(74,85,219);">)</span>
<span style="color:rgb(74,85,219);">[</span><span style="color:rgb(0,0,0);">s</span><span style="color:rgb(0,0,0);">,</span> <span style="color:rgb(0,0,0);">e</span><span style="color:rgb(74,85,219);">]</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(50,185,185);">regexp</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(50,185,185);">ascii</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(131,67,16);font-weight:bold;">data</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">,</span> <span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">/</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(92,92,92);">+</span><span style="color:rgb(131,67,16);font-weight:bold;">startstr</span><span style="color:rgb(92,92,92);">+</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">.*?</span><span style="colo
r:rgb(188,143,143);">"</span><span style="color:rgb(92,92,92);">+</span><span style="color:rgb(131,67,16);font-weight:bold;">endstr</span><span style="color:rgb(92,92,92);">+</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">/</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(74,85,219);">)</span>
<span style="color:rgb(131,67,16);font-weight:bold;">res</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(50,185,185);">list</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(74,85,219);">)</span>
<span style="color:rgb(160,32,240);">for</span> <span style="color:rgb(0,0,0);">i</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(188,143,143);">1</span><span style="color:rgb(255,170,0);">:</span><span style="color:rgb(50,185,185);">length</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">s</span><span style="color:rgb(74,85,219);">)</span>
<span style="color:rgb(131,67,16);font-weight:bold;">res</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">i</span><span style="color:rgb(74,85,219);">)</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(131,67,16);font-weight:bold;">bytes</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">s</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">i</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(92,92,92);">+</span><span style="color:rgb(50,185,185);">length</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(50,185,185);">ascii</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(131,67,16);font-weight:bold;">startstr</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(74,85,219);">)</span><s
pan style="color:rgb(255,170,0);">:</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">e</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">i</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(92,92,92);">-</span><span style="color:rgb(50,185,185);">length</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(50,185,185);">ascii</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(131,67,16);font-weight:bold;">endstr</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(74,85,219);">)</span>
<span style="color:rgb(160,32,240);">end</span>
<span style="color:rgb(176,24,19);">endfunction</span>
<span style="color:rgb(0,0,0);">bb</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(0,0,0);text-decoration:underline;">getBinaryBlocs</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(188,143,143);">'</span><span style="color:rgb(188,143,143);">Fails.raw</span><span style="color:rgb(188,143,143);">'</span><span style="color:rgb(0,0,0);">,</span> <span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">#data#</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(0,0,0);">,</span> <span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">#EOC#</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">;</span></big></pre>
--------------------<br>
Le 27/08/2016 08:10, Gerhard Kreuzer a écrit :<br>
</div>
<blockquote cite="mid:000301d20029$b54765a0$1fd630e0$@liftoff.at"
type="cite">
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252">
<meta name="Generator" content="Microsoft Word 14 (filtered
medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
<div class="WordSection1">
<p class="MsoNormal"><span style="font-family:"Comic Sans
MS";color:#1F497D">Hi Jan,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Comic Sans
MS";color:#1F497D">get it.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Comic Sans
MS";color:#1F497D">Yesterday I faild until I see that
the file wasn’t accessible, for what reason ever. I don’t
get an error message, but after mgetstr I don’t have any
data read. After rebooting the machine, this problem
dissappears.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Comic Sans
MS";color:#1F497D">Here the working version:<o:p></o:p></span></p>
<p class="MsoNormal"><i><span
style="font-size:13.5pt;font-family:"Monospaced","serif";color:#64AE64">//
Copyright (C) 2016 - Liftoff - Gerhard Kreuzer msc.</span></i><span
style="font-size:13.5pt;font-family:"Monospaced","serif""><o:p></o:p></span></p>
<p class="MsoNormal"><i><span
style="font-size:13.5pt;font-family:"Monospaced","serif";color:#64AE64">//</span></i><span
style="font-size:13.5pt;font-family:"Monospaced","serif""><o:p></o:p></span></p>
<p class="MsoNormal"><i><span
style="font-size:13.5pt;font-family:"Monospaced","serif";color:#64AE64">//
Date of creation: 26.08.2016</span></i><span
style="font-size:13.5pt;font-family:"Monospaced","serif""><o:p></o:p></span></p>
<p class="MsoNormal"><i><span
style="font-size:13.5pt;font-family:"Monospaced","serif";color:#64AE64">//</span></i><span
style="font-size:13.5pt;font-family:"Monospaced","serif""><o:p></o:p></span></p>
<p class="MsoNormal"><i><span
style="font-size:13.5pt;font-family:"Monospaced","serif";color:#64AE64">//
Just for tests</span></i><span
style="font-size:13.5pt;font-family:"Monospaced","serif""><o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:13.5pt;font-family:"Monospaced","serif";color:#32B9B9">clear</span><span
style="font-size:13.5pt;font-family:"Monospaced","serif";color:black">;</span><span
style="font-size:13.5pt;font-family:"Monospaced","serif""><o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:13.5pt;font-family:"Monospaced","serif";color:black">fnRawData</span><span
style="font-size:13.5pt;font-family:"Monospaced","serif";color:#5C5C5C">=</span><span
style="font-size:13.5pt;font-family:"Monospaced","serif";color:rosybrown">'Works.raw'</span><span
style="font-size:13.5pt;font-family:"Monospaced","serif";color:black">;</span><span
style="font-size:13.5pt;font-family:"Monospaced","serif""><o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:13.5pt;font-family:"Monospaced","serif";color:black">fnRawData</span><span
style="font-size:13.5pt;font-family:"Monospaced","serif";color:#5C5C5C">=</span><span
style="font-size:13.5pt;font-family:"Monospaced","serif";color:rosybrown">'Fails.raw'</span><span
style="font-size:13.5pt;font-family:"Monospaced","serif"">
<i><span style="color:#64AE64">// Comment out to see working
file which contains only dummy data</span></i><o:p></o:p></span></p>
<p class="MsoNormal"><i><span
style="font-size:13.5pt;font-family:"Monospaced","serif";color:#64AE64">//
HEUREKA, both files working now</span></i><span
style="font-size:13.5pt;font-family:"Monospaced","serif""><o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:13.5pt;font-family:"Monospaced","serif";color:black">fdRawData</span><span
style="font-size:13.5pt;font-family:"Monospaced","serif"">
<span style="color:#5C5C5C">=</span> <span
style="color:#32B9B9">mopen</span><span
style="color:#4A55DB">(</span><span style="color:black">fnRawData,</span><span
style="color:rosybrown">'rb'</span><span
style="color:#4A55DB">)</span><span style="color:black">;</span><o:p></o:p></span></p>
<p class="MsoNormal"><i><span
style="font-size:13.5pt;font-family:"Monospaced","serif";color:#64AE64">//
Find start of binary data by searching the first non ascii
value</span></i><span
style="font-size:13.5pt;font-family:"Monospaced","serif""><o:p></o:p></span></p>
<p class="MsoNormal"><i><span
style="font-size:13.5pt;font-family:"Monospaced","serif";color:#64AE64">//
No problem if the exact end is missed, regex will do the
rest</span></i><span
style="font-size:13.5pt;font-family:"Monospaced","serif""><o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:13.5pt;font-family:"Monospaced","serif";color:#A020F0">if</span><span
style="font-size:13.5pt;font-family:"Monospaced","serif"">
<span style="color:#5C5C5C">~</span><span
style="color:#32B9B9">meof</span><span
style="color:#4A55DB">(</span><span style="color:black">fdRawData</span><span
style="color:#4A55DB">)</span> <span
style="color:#A020F0">then</span> <span
style="color:black">c</span> <span style="color:#5C5C5C">=</span>
<span style="color:#32B9B9">mgeti</span><span
style="color:#4A55DB">(</span><span
style="color:rosybrown">1</span><span style="color:black">,</span>
<span style="color:rosybrown">'uc'</span><span
style="color:black">,</span> <span style="color:black">fdRawData</span><span
style="color:#4A55DB">)</span><span style="color:black">;</span>
<span style="color:#A020F0">end</span><o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:13.5pt;font-family:"Monospaced","serif";color:#A020F0">while</span><span
style="font-size:13.5pt;font-family:"Monospaced","serif"">
<span style="color:#4A55DB">(</span> <span
style="color:black">c</span> <span style="color:#5C5C5C"><</span>
<span style="color:rosybrown">128</span> <span
style="color:#5C5C5C">&</span> <span
style="color:black">c</span> <span style="color:#5C5C5C">>=</span>
<span style="color:rosybrown">32</span> <span
style="color:#4A55DB">)</span> <span
style="color:#5C5C5C">&</span> <span
style="color:#5C5C5C">~</span><span style="color:#32B9B9">meof</span><span
style="color:#4A55DB">(</span><span style="color:black">fdRawData</span><span
style="color:#4A55DB">)</span><o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:13.5pt;font-family:"Monospaced","serif"">
<span style="color:black">c</span> <span
style="color:#5C5C5C">=</span> <span
style="color:#32B9B9">mgeti</span><span
style="color:#4A55DB">(</span><span
style="color:rosybrown">1</span><span style="color:black">,</span>
<span style="color:rosybrown">'uc'</span><span
style="color:black">,</span> <span style="color:black">fdRawData</span><span
style="color:#4A55DB">)</span><span style="color:black">;</span><o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:13.5pt;font-family:"Monospaced","serif";color:#A020F0">end</span><span
style="font-size:13.5pt;font-family:"Monospaced","serif""><o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:13.5pt;font-family:"Monospaced","serif";color:black">metaDataEnd</span><span
style="font-size:13.5pt;font-family:"Monospaced","serif"">
<span style="color:#5C5C5C">=</span> <span
style="color:#32B9B9">mtell</span><span
style="color:#4A55DB">(</span><span style="color:black">fdRawData</span><span
style="color:#4A55DB">)</span>
<i><span style="color:#64AE64">// Note down this position</span></i><o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:13.5pt;font-family:"Monospaced","serif";color:#32B9B9">mseek</span><span
style="font-size:13.5pt;font-family:"Monospaced","serif";color:#4A55DB">(</span><span
style="font-size:13.5pt;font-family:"Monospaced","serif";color:rosybrown">0</span><span
style="font-size:13.5pt;font-family:"Monospaced","serif";color:black">,</span><span
style="font-size:13.5pt;font-family:"Monospaced","serif"">
<span style="color:black">fdRawData,</span> <span
style="color:rosybrown">'set'</span><span
style="color:#4A55DB">)</span><span style="color:black">;</span>
<i><span style="color:#64AE64">// Rewind
file //</span></i><o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:13.5pt;font-family:"Monospaced","serif";color:black">strData</span><span
style="font-size:13.5pt;font-family:"Monospaced","serif"">
<span style="color:#5C5C5C">=</span> <span
style="color:#32B9B9">mgetstr</span><span
style="color:#4A55DB">(</span><span style="color:black">metaDataEnd</span>
<span style="color:#5C5C5C">-</span> <span
style="color:rosybrown">1</span><span style="color:black">,</span>
<span style="color:black">fdRawData</span><span
style="color:#4A55DB">)</span><span style="color:black">;</span>
<i><span style="color:#64AE64">// Read whole meta data
block, only ASCII values go here</span></i><o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:13.5pt;font-family:"Monospaced","serif";color:#4A55DB">[</span><span
style="font-size:13.5pt;font-family:"Monospaced","serif";color:black">dummy,dataStart,dataMatch,data</span><span
style="font-size:13.5pt;font-family:"Monospaced","serif";color:#4A55DB">]</span><span
style="font-size:13.5pt;font-family:"Monospaced","serif";color:#5C5C5C">=</span><span
style="font-size:13.5pt;font-family:"Monospaced","serif";color:#32B9B9">regexp</span><span
style="font-size:13.5pt;font-family:"Monospaced","serif";color:#4A55DB">(</span><span
style="font-size:13.5pt;font-family:"Monospaced","serif";color:black">strData,</span><span
style="font-size:13.5pt;font-family:"Monospaced","serif";color:rosybrown">'/#data#/'</span><span
style="font-size:13.5pt;font-family:"Monospaced","serif";color:#4A55DB">)</span><span
style="font-size:13.5pt;font-family:"Monospaced","serif";color:black">;</span><span
style="font-size:13.5pt;font-family:"Monospaced","serif"">
<i><span style="color:#64AE64">// Analyze meta data, we just
seek for the begin of the binary data here</span></i><o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:13.5pt;font-family:"Monospaced","serif""><o:p> </o:p></span></p>
<p class="MsoNormal"><span
style="font-size:13.5pt;font-family:"Monospaced","serif";color:#32B9B9">mseek</span><span
style="font-size:13.5pt;font-family:"Monospaced","serif";color:#4A55DB">(</span><span
style="font-size:13.5pt;font-family:"Monospaced","serif";color:black">dataStart,</span><span
style="font-size:13.5pt;font-family:"Monospaced","serif"">
<span style="color:black">fdRawData,</span> <span
style="color:rosybrown">'set'</span><span
style="color:#4A55DB">)</span><span style="color:black">;</span>
<i><span style="color:#64AE64">// Set file pointer to
correct position</span></i><o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:13.5pt;font-family:"Monospaced","serif";color:black">sset</span><span
style="font-size:13.5pt;font-family:"Monospaced","serif"">
<span style="color:#5C5C5C">=</span> <span
style="color:#32B9B9">mgeti</span><span
style="color:#4A55DB">(</span><span
style="color:rosybrown">7</span><span style="color:black">,</span>
<span style="color:rosybrown">'il'</span><span
style="color:black">,</span> <span style="color:black">fdRawData</span><span
style="color:#4A55DB">)</span><span style="color:black">;</span>
<i><span style="color:#64AE64">// Read first sample set,
just for test.</span></i><o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:13.5pt;font-family:"Monospaced","serif";color:#32B9B9">mclose</span><span
style="font-size:13.5pt;font-family:"Monospaced","serif";color:#4A55DB">(</span><span
style="font-size:13.5pt;font-family:"Monospaced","serif";color:black">fdRawData</span><span
style="font-size:13.5pt;font-family:"Monospaced","serif";color:#4A55DB">)</span><span
style="font-size:13.5pt;font-family:"Monospaced","serif";color:black">;</span><span
style="font-size:13.5pt;font-family:"Monospaced","serif"">
<i><span style="color:#64AE64">// Ich habe fertig</span></i><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Comic Sans
MS";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Comic Sans
MS";color:#1F497D">I am sure ther could be done some
optimization, but ist a good start now.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Comic Sans
MS";color:#1F497D">Thanks a lot.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Comic Sans
MS";color:#1F497D">With best regards<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Comic Sans
MS";color:#1F497D">Gerhard<o:p></o:p></span></p>
</div>
</blockquote>
</body>
</html>