public static void Remove <T>(int pos, TypedFile <T> typedfile) { typedfile.Reset(); T[] s = Read(typedfile); List <T> l = new List <T>(); for (int i = 0; i < s.Length; i++) { if (i != pos) { l.Add(s[i]); } } typedfile.Rewrite(); for (int i = 0; i < s.Length; i++) { typedfile.Append(); typedfile.Write(l[i]); } }
public static void Sort <T>(TypedFile <T> typedfile, CompareDelegate <T> compareDelegate) { typedfile.Reset(); T[] array = Read(typedfile); int inner, outer; T temp; int h = 1; while (h <= array.Length / 3) { h = h * 3 + 1; } while (h > 0) { for (outer = h; outer < array.Length; outer++) { temp = array[outer]; inner = outer; while (inner > h - 1 && compareDelegate(array[inner - h], temp) >= 0) { array[inner] = array[inner - h]; inner -= h; } array[inner] = temp; } h = (h - 1) / 3; } typedfile.Rewrite(); foreach (var item in array) { typedfile.Write(item); } }