1 module qui.misc;
2 
3 import qui.qui;
4 import std.stdio;
5 
6 ///These names are easier to understand
7 alias integer = ptrdiff_t;
8 alias uinteger = size_t;
9 
10 
11 string[] fileToArray(string fname){
12 	File f = File(fname,"r");
13 	string[] r;
14 	string line;
15 	integer i=0;
16 	r.length=0;
17 	while (!f.eof()){
18 		if (i+1>=r.length){
19 			r.length+=5;
20 		}
21 		line=f.readln;
22 		if (line.length>0 && line[line.length-1]=='\n'){
23 			line.length--;
24 		}
25 		r[i]=line;
26 		i++;
27 	}
28 	f.close;
29 	r.length = i;
30 	return r;
31 }
32 
33 bool arrayToFile(string fname,string[] array){
34 	bool r = true;
35 	import std.stdio;
36 	File f = File(fname,"w");
37 	uinteger i;
38 	for (i=0;i<array.length;i++){
39 		f.write(array[i],'\n');
40 	}
41 	f.close;
42 	return r;
43 }
44 
45 T[] deleteArray(T)(T[] dat, uinteger pos, uinteger count=1){
46 	T[] ar1, ar2;
47 	ar1 = dat[0..pos];
48 	ar2 = dat[pos+count..dat.length];
49 	return ar1~ar2;
50 }
51 
52 T[] insertArray(T)(T[] dat, T[] ins, uinteger pos){
53 	T[] ar1, ar2;
54 	ar1 = dat[0..pos];
55 	ar2 = dat[pos..dat.length];
56 	return ar1~ins~ar2;
57 }