From b64ae0490f5ec026a86f66516715950b94893910 Mon Sep 17 00:00:00 2001 From: Tilo K Date: Mon, 9 Sep 2024 22:23:43 +0200 Subject: [PATCH] feat: print header --- src/csv.zig | 23 +++++++++++++++++++++-- src/main.zig | 7 ++----- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/src/csv.zig b/src/csv.zig index 19f8073..6deedd6 100644 --- a/src/csv.zig +++ b/src/csv.zig @@ -100,7 +100,7 @@ pub fn printTable(file: CsvFile) !void { defer alloc.free(col_sizes); for (0..col_nums) |i| { - col_sizes[i] = 0; + col_sizes[i] = file.header.items[i].len; } for (file.entries.items) |entry| { for (0..col_nums) |i| { @@ -113,12 +113,31 @@ pub fn printTable(file: CsvFile) !void { _ = dimensions; - std.debug.print("{any}\n", .{col_sizes}); var complete_length = col_nums + 1; for (col_sizes) |col_size| { complete_length += col_size; } + for (0..complete_length) |_| { + try stdout.print("-", .{}); + } + try stdout.print("\n|", .{}); + + for (0..col_nums) |i| { + const out = file.header.items[i]; + const missing = col_sizes[i] - out.len; + + _ = try stdout.writeAll(out); + + for (0..missing) |_| { + _ = try stdout.writeAll(" "); + } + _ = try stdout.writeAll("|"); + } + + _ = try stdout.writeAll("\n"); + _ = try bw.flush(); + for (0..complete_length) |_| { try stdout.print("-", .{}); } diff --git a/src/main.zig b/src/main.zig index b8e53b9..d26d846 100644 --- a/src/main.zig +++ b/src/main.zig @@ -24,11 +24,8 @@ pub fn main() !void { var file = try csv.loadFile(filepath); const valid = file.isValid(); - if (valid) { - _ = try stdout.write("Csv is valid\n"); - } else { - _ = try stdout.write("Csv is not valid\n"); - } + if (!valid) return; + _ = try bw.flush(); try csv.printTable(file);