Ver código fonte

#4 Embed _blocks.csv_

Sacha Ligthert 1 ano atrás
pai
commit
c02aea543c
2 arquivos alterados com 15 adições e 16 exclusões
  1. 0 0
      solver/blocks.csv
  2. 15 16
      solver/blocks.go

+ 0 - 0
blocks.csv → solver/blocks.csv


+ 15 - 16
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
 
 }