public static Task ProcessHash(string input, string output, int numFiles) { return(Task.Run(() => { var block = (int)Math.Ceiling((double)(0xf + 1) / numFiles); using (var outputFile = new WriterSet(numFiles, output)) { foreach (var line in File.ReadLines(input)) { var account = GetInfo(line); if (string.IsNullOrEmpty(account.Mail) || string.IsNullOrEmpty(account.Hash)) { continue; } try{ var index = Convert.ToInt32(account.Hash[0].ToString(), 16) / block; outputFile.Write(index, account.Hash); outputFile.Write(index, ','); outputFile.WriteLine(index, account.Mail); } catch (Exception e) { Console.WriteLine(line); throw e; } } } })); }
public static Task FormatPass(string input, string output, int numFiles) { return(Task.Run(() => { var block = (int)Math.Ceiling((double)(0xf + 1) / numFiles); using (var outputFile = new WriterSet(numFiles, output)) { foreach (var line in File.ReadLines(input)) { var index = Convert.ToInt32(line[0].ToString(), 16) / block; try { outputFile.Write(index, line.Substring(0, 40)); outputFile.Write(index, ','); outputFile.WriteLine(index, Helper.FormatCVSstring(line.Substring(41, line.Length - 41))); } catch (Exception e) { Console.WriteLine(index); Console.WriteLine(line); throw e; } } } })); }