📝 format
This commit is contained in:
parent
dea19fe3c3
commit
94d0ce9c2d
10
std/csv.nas
10
std/csv.nas
|
@ -2,14 +2,14 @@
|
||||||
# ValKmjolnir 2022/10/15
|
# ValKmjolnir 2022/10/15
|
||||||
use std.io;
|
use std.io;
|
||||||
|
|
||||||
var read = func(path, delimeter=",", endline="\n") {
|
var read = func(path, delimeter = ",", endline = "\n") {
|
||||||
var context = io.readfile(path);
|
var context = io.readfile(path);
|
||||||
context = split(endline, context);
|
context = split(endline, context);
|
||||||
forindex(var i;context) {
|
forindex(var i; context) {
|
||||||
context[i] = split(delimeter,context[i]);
|
context[i] = split(delimeter, context[i]);
|
||||||
}
|
}
|
||||||
if (size(context)<=1) {
|
if (size(context) <= 1) {
|
||||||
die("incorrect csv file <"~path~">: "~size(context)~" line(s).");
|
die("incorrect csv file <" ~ path ~ ">: " ~ size(context) ~ " line(s).");
|
||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
property: context[0],
|
property: context[0],
|
||||||
|
|
24
std/file.nas
24
std/file.nas
|
@ -4,12 +4,10 @@ use std.io;
|
||||||
use std.unix;
|
use std.unix;
|
||||||
|
|
||||||
var SEEK_SET = io.SEEK_SET;
|
var SEEK_SET = io.SEEK_SET;
|
||||||
|
|
||||||
var SEEK_CUR = io.SEEK_CUR;
|
var SEEK_CUR = io.SEEK_CUR;
|
||||||
|
|
||||||
var SEEK_END = io.SEEK_END;
|
var SEEK_END = io.SEEK_END;
|
||||||
|
|
||||||
var new = func(filename, mode="r") {
|
var new = func(filename, mode = "r") {
|
||||||
if (!io.exists(filename)) {
|
if (!io.exists(filename)) {
|
||||||
return nil;
|
return nil;
|
||||||
}
|
}
|
||||||
|
@ -56,7 +54,7 @@ var find_all_files = func(path) {
|
||||||
var dd = unix.opendir(path);
|
var dd = unix.opendir(path);
|
||||||
var res = [];
|
var res = [];
|
||||||
while(var n = unix.readdir(dd)) {
|
while(var n = unix.readdir(dd)) {
|
||||||
if (unix.isfile(path~"/"~n)) {
|
if (unix.isfile(path ~ "/" ~ n)) {
|
||||||
append(res, n);
|
append(res, n);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -74,11 +72,11 @@ var recursive_find_files = func(path) {
|
||||||
files: []
|
files: []
|
||||||
};
|
};
|
||||||
while(var n = unix.readdir(dd)) {
|
while(var n = unix.readdir(dd)) {
|
||||||
if (unix.isfile(path~"/"~n)) {
|
if (unix.isfile(path ~ "/" ~ n)) {
|
||||||
append(res.files, n);
|
append(res.files, n);
|
||||||
} elsif (unix.isdir(path~"/"~n) and n!="." and n!="..") {
|
} elsif (unix.isdir(path ~ "/" ~ n) and n != "." and n != "..") {
|
||||||
var tmp = recursive_find_files(path~"/"~n);
|
var tmp = recursive_find_files(path ~ "/" ~ n);
|
||||||
if (tmp!=nil) {
|
if (tmp != nil) {
|
||||||
append(res.files, tmp);
|
append(res.files, tmp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -89,19 +87,19 @@ var recursive_find_files = func(path) {
|
||||||
|
|
||||||
var recursive_find_files_flat = func(path) {
|
var recursive_find_files_flat = func(path) {
|
||||||
var tree_files = recursive_find_files(path);
|
var tree_files = recursive_find_files(path);
|
||||||
if (tree_files==nil) {
|
if (tree_files == nil) {
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
var flat = [];
|
var flat = [];
|
||||||
var bfs = [tree_files];
|
var bfs = [tree_files];
|
||||||
while(size(bfs)!=0) {
|
while(size(bfs) != 0) {
|
||||||
var first = pop(bfs);
|
var first = pop(bfs);
|
||||||
foreach(var file_record; first.files) {
|
foreach(var file_record; first.files) {
|
||||||
if (ishash(file_record)) {
|
if (ishash(file_record)) {
|
||||||
append(bfs, file_record);
|
append(bfs, file_record);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
append(flat, first.dir~"/"~file_record);
|
append(flat, first.dir ~ "/" ~ file_record);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return flat;
|
return flat;
|
||||||
|
@ -110,7 +108,7 @@ var recursive_find_files_flat = func(path) {
|
||||||
var recursive_find_files_with_extension = func(path, extensions...) {
|
var recursive_find_files_with_extension = func(path, extensions...) {
|
||||||
var in_vec = func(ext) {
|
var in_vec = func(ext) {
|
||||||
foreach(var i; extensions) {
|
foreach(var i; extensions) {
|
||||||
if (ext==i) {
|
if (ext == i) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -121,7 +119,7 @@ var recursive_find_files_with_extension = func(path, extensions...) {
|
||||||
var res = [];
|
var res = [];
|
||||||
foreach(var filename; files) {
|
foreach(var filename; files) {
|
||||||
var tmp = split('.', filename);
|
var tmp = split('.', filename);
|
||||||
if (size(tmp)>1 and in_vec(tmp[-1])) {
|
if (size(tmp) > 1 and in_vec(tmp[-1])) {
|
||||||
append(res, filename);
|
append(res, filename);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,32 +4,32 @@ var new = func() {
|
||||||
var (begin, end) = (nil, nil);
|
var (begin, end) = (nil, nil);
|
||||||
return{
|
return{
|
||||||
push: func(elem) {
|
push: func(elem) {
|
||||||
var new_node={
|
var new_node = {
|
||||||
elem:elem,
|
elem:elem,
|
||||||
next:nil
|
next:nil
|
||||||
};
|
};
|
||||||
if (begin==nil)
|
if (begin == nil)
|
||||||
begin=end=new_node;
|
begin = end = new_node;
|
||||||
else {
|
else {
|
||||||
end.next=new_node;
|
end.next = new_node;
|
||||||
end=new_node;
|
end = new_node;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
pop: func() {
|
pop: func() {
|
||||||
if (begin!=nil)
|
if (begin != nil)
|
||||||
begin=begin.next;
|
begin = begin.next;
|
||||||
if (begin==nil)
|
if (begin == nil)
|
||||||
end=nil;
|
end = nil;
|
||||||
},
|
},
|
||||||
front: func() {
|
front: func() {
|
||||||
if (begin!=nil)
|
if (begin != nil)
|
||||||
return begin.elem;
|
return begin.elem;
|
||||||
},
|
},
|
||||||
clear: func() {
|
clear: func() {
|
||||||
begin=end=nil;
|
begin = end = nil;
|
||||||
},
|
},
|
||||||
empty: func() {
|
empty: func() {
|
||||||
return begin==nil;
|
return begin == nil;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,7 @@ var stack = func() {
|
||||||
return pop(vec);
|
return pop(vec);
|
||||||
},
|
},
|
||||||
top: func() {
|
top: func() {
|
||||||
if (size(vec)!=0) {
|
if (size(vec) != 0) {
|
||||||
return vec[-1];
|
return vec[-1];
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -18,7 +18,7 @@ var stack = func() {
|
||||||
vec = [];
|
vec = [];
|
||||||
},
|
},
|
||||||
empty: func() {
|
empty: func() {
|
||||||
return size(vec)==0;
|
return size(vec) == 0;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,11 +33,13 @@ func() {
|
||||||
}();
|
}();
|
||||||
|
|
||||||
var to_char = func(number) {
|
var to_char = func(number) {
|
||||||
return 0<=number and number<256? __num_to_char[number]:"";
|
return 0 <= number and number < 256? __num_to_char[number] : "";
|
||||||
}
|
}
|
||||||
|
|
||||||
var to_num = func(character) {
|
var to_num = func(character) {
|
||||||
return __temp_contains(__char_to_num, character)? __char_to_num[character]:-1;
|
return __temp_contains(__char_to_num, character)
|
||||||
|
? __char_to_num[character]
|
||||||
|
: -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
var __string_split_with_empty_substr = func(separator, str) {
|
var __string_split_with_empty_substr = func(separator, str) {
|
||||||
|
|
Loading…
Reference in New Issue