-
Notifications
You must be signed in to change notification settings - Fork 7
/
all-in-one.js
40 lines (33 loc) · 989 Bytes
/
all-in-one.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
var reader = require ("../build/buffered-reader");
var BinaryReader = reader.BinaryReader;
var DataReader = reader.DataReader;
var close = function (binaryReader, error){
if (error) console.log (error);
binaryReader.close (function (error){
if (error) console.log (error);
});
};
var file = "lorem ipsum";
var offset;
new DataReader (file, { encoding: "utf8" })
.on ("error", function (error){
console.log (error);
})
.on ("line", function (line, byteOffset){
if (line === "Phasellus ultrices ligula sed odio ultricies egestas."){
offset = byteOffset;
this.interrupt ();
}
})
.on ("end", function (){
new BinaryReader (file)
.seek (offset, function (error){
if (error) return close (this, error);
this.read (9, function (error, bytes, bytesRead){
if (error) return close (this, error);
console.log (bytes.toString ()); //Prints: Curabitur
close (this);
});
});
})
.read ();