//Первый проход, из основоного файла распределяем тольео те объекты, которые подходят по условию void FirstMerge(string FileName, float max) { //Массив потоков для записи StreamWriter[] writers = new StreamWriter[CountOfFiles]; for (int i = 0; i < writers.Length; ++i) { writers[i] = new StreamWriter((i + 1).ToString(), false); } //индекс потока записи в который записываем int pos = 0; //Буфер Sweets buf = new Sweets(); //Чтение файла using (StreamReader reader = new StreamReader(FileName)) { //Пока считывание корректно, проверяем условие и, если совпало, //записываем в вспомогательный файл и переходим к след. файловому потоку while (Sweets.TryRead(buf, reader)) { if (buf.Cost < max) { buf.WriteStream(writers[pos]); pos = (pos + 1) % CountOfFiles; } } } //Закрываем потоки для записи for (int i = 0; i < writers.Length; ++i) { writers[i].Close(); } }
public static void PutToFile(TextBox text, string FileName) { using (StreamWriter writer = new StreamWriter(FileName, false)) { string[] s = text.Text.Split(new String[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries); Sweets buf; for (int i = 0; i < s.Length; ++i) { buf = new Sweets(s[i]); buf.WriteStream(writer); } } }