-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathutil.ts
72 lines (56 loc) · 1.84 KB
/
util.ts
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import { TextLineStream } from "@std/streams/text-line-stream";
export async function arraysFromFileCols(path: string): Promise<number[][]> {
using file = await Deno.open(path);
const lines = await Array.fromAsync(
file.readable
.pipeThrough(new TextDecoderStream())
.pipeThrough(new TextLineStream()),
);
const array0: number[] = new Array(lines.length).fill(0);
const array1: number[] = new Array(lines.length).fill(0);
lines.map((x) => x.split(/\s+/).map((y) => parseInt(y)))
.forEach((e, i) => {
array0[i] = e[0];
array1[i] = e[1];
});
return [array0, array1];
}
export async function arraysFromFileColsDelim(
path: string,
): Promise<number[][]> {
using file = await Deno.open(path);
const lines = await Array.fromAsync(
file.readable
.pipeThrough(new TextDecoderStream())
.pipeThrough(new TextLineStream()),
);
const array0: number[] = new Array(lines.length).fill(0);
const array1: number[] = new Array(lines.length).fill(0);
lines.map((x) => x.split("|").map((y) => parseInt(y)))
.forEach((e, i) => {
array0[i] = e[0];
array1[i] = e[1];
});
return [array0, array1];
}
export async function arraysFromFileRows(path: string): Promise<number[][]> {
using file = await Deno.open(path);
const lines = await Array.fromAsync(
file.readable
.pipeThrough(new TextDecoderStream())
.pipeThrough(new TextLineStream()),
);
return lines.map((x) => x.split(/\s+/).map((y) => parseInt(y)));
}
export async function arraysFromFileRowsDelim(
path: string,
delim: string,
): Promise<number[][]> {
using file = await Deno.open(path);
const lines = await Array.fromAsync(
file.readable
.pipeThrough(new TextDecoderStream())
.pipeThrough(new TextLineStream()),
);
return lines.map((x) => x.split(delim).map((y) => parseInt(y)));
}