/// <summary> /// Header consists of: /// 1) |---------------------| <-- hyphen line /// 2) | | | 5 | 1 | <-- (optional) max width of field /// 3) | LN | FC | 1 | 2 | <-- field number /// 4) | | | line3 | c | <-- (optional) header field /// 5) |-----------------+---| <-- hyphen line /// (a) optional line number /// (b) optional field count for each row /// </summary> private void PrintHeader() { // (1) // print top line PrintHyphenLine(false); // (2) if (PrintFieldMaxWidth) { PrintLineNumberField("FS"); PrintFieldCountField(""); for (int i = 0; i < MaxFieldCount; ++i) { OutStream.Write("|"); PrintField(MaxFieldLengths[i].ToString(), MaxFieldLengths[i], true); } OutStream.Write("|" + System.Environment.NewLine); } // (3) { PrintLineNumberField("LN"); PrintFieldCountField("FC"); // print field numbers for (int i = 0; i < MaxFieldCount; ++i) { OutStream.Write('|'); PrintField((FieldOffset + i).ToString(), MaxFieldLengths[i], true); } OutStream.Write("|" + System.Environment.NewLine); } // (4) print headers (if we need them) if (Header == PrintHeaderType.PrintRow1 || Header == PrintHeaderType.PrintExternFile) { string[] fields = ParseClass.ParseLine(HeaderLine, TrimFields, Delimiter, PreserveQuotes); PrintLineNumberField(""); PrintFieldCountField(fields.Length.ToString()); for (int i = 0; i < MaxFieldCount; ++i) { OutStream.Write("|"); if (i >= fields.Length) { PrintField(null, MaxFieldLengths[i], true); } else { PrintField(fields[i], MaxFieldLengths[i], true); } } OutStream.Write("|" + System.Environment.NewLine); } // (5) print plus line between header & body PrintHyphenLine(true); }
private void PrintBody() { for (int rowcount = 0; rowcount < RawFile.Count; rowcount++) { string line = RawFile[rowcount]; string[] fields = ParseClass.ParseLine(line, TrimFields, Delimiter, PreserveQuotes); PrintLineNumberField((StartSkipRows + rowcount + 1).ToString()); PrintFieldCountField(fields.Length.ToString()); for (int i = 0; i < MaxFieldCount; ++i) { OutStream.Write("|"); if (i >= fields.Length) { PrintField(null, MaxFieldLengths[i], true); } else { PrintField(fields[i], MaxFieldLengths[i], true); } } OutStream.Write("|" + System.Environment.NewLine); } }
private int SaveFieldCount(string line) { string[] fields = ParseClass.ParseLine(line, TrimFields, Delimiter, PreserveQuotes); if (fields.Length > MaxFieldCount) { MaxFieldCount = fields.Length; } SaveFieldLengths(fields); return(0); }