From c02aea543cbdaaaa7031c83d85a6182ed8672d5b Mon Sep 17 00:00:00 2001 From: Sacha Ligthert Date: Thu, 23 Jan 2025 23:39:57 +0100 Subject: [PATCH] #4 Embed _blocks.csv_ --- blocks.csv => solver/blocks.csv | 0 solver/blocks.go | 31 +++++++++++++++---------------- 2 files changed, 15 insertions(+), 16 deletions(-) rename blocks.csv => solver/blocks.csv (100%) diff --git a/blocks.csv b/solver/blocks.csv similarity index 100% rename from blocks.csv rename to solver/blocks.csv diff --git a/solver/blocks.go b/solver/blocks.go index 5d062a2..365c714 100644 --- a/solver/blocks.go +++ b/solver/blocks.go @@ -1,15 +1,18 @@ package solver import ( - "encoding/csv" - "io" + "embed" "log" - "os" "strconv" + "strings" "time" ) -// TODO: Import at compile time, provide with the binary +// Dirty AF. Not happy with this. 😒 +// +//go:embed blocks.csv +var f embed.FS + func (solver *Solver) load_blocks() { defer solver.timeTrack(time.Now(), "Loaded blocks") @@ -17,25 +20,21 @@ func (solver *Solver) load_blocks() { var blocks []int - file, err := os.Open("blocks.csv") + file, err := f.ReadFile("blocks.csv") if err != nil { panic(err) } - defer file.Close() - r := csv.NewReader(file) - for { - record, err := r.Read() - if err == io.EOF { - break - } - if err != nil { - log.Fatal(err) - } + temp := strings.Split(string(file), "\n") - block, _ := strconv.Atoi(record[0]) + for _, line := range temp { + block, _ := strconv.Atoi(string(line)) + if block == 0 { // Ignore new-line at the end of the file. + continue + } blocks = append(blocks, block) } + solver.blocks = blocks }