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 }