From c3bcb5e5201a0fc5526d232299361abf6accbb07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thorben=20G=C3=BCnther?= Date: Thu, 9 Dec 2021 01:09:36 +0100 Subject: [PATCH] Move file reading functions to sub package, rename functions and add SplitCommaToInt --- day01/main.go | 6 ++-- day03/main.go | 4 +-- utils/files/readfile.go | 74 +++++++++++++++++++++++++++++++++++++++++ utils/readfile.go | 46 ------------------------- 4 files changed, 79 insertions(+), 51 deletions(-) create mode 100644 utils/files/readfile.go delete mode 100644 utils/readfile.go diff --git a/day01/main.go b/day01/main.go index 67bc52e..60ed287 100644 --- a/day01/main.go +++ b/day01/main.go @@ -4,7 +4,7 @@ import ( "fmt" "log" - "git.xenrox.net/~xenrox/aoc2021/utils" + "git.xenrox.net/~xenrox/aoc2021/utils/files" ) func Run() { @@ -24,7 +24,7 @@ func Run() { } func calc1(path string) (int, error) { - lines, err := utils.ReadFileToInt(path) + lines, err := files.SplitNewlineToInt(path) if err != nil { return 0, err } @@ -40,7 +40,7 @@ func calc1(path string) (int, error) { } func calc2(path string) (int, error) { - lines, err := utils.ReadFileToInt(path) + lines, err := files.SplitNewlineToInt(path) if err != nil { return 0, err } diff --git a/day03/main.go b/day03/main.go index 6b68c67..624e55d 100644 --- a/day03/main.go +++ b/day03/main.go @@ -5,7 +5,7 @@ import ( "log" "strconv" - "git.xenrox.net/~xenrox/aoc2021/utils" + "git.xenrox.net/~xenrox/aoc2021/utils/files" ) func Run() { @@ -18,7 +18,7 @@ func Run() { } func calc1(path string) (int, error) { - lines, err := utils.ReadFile(path) + lines, err := files.SplitNewline(path) if err != nil { return 0, err } diff --git a/utils/files/readfile.go b/utils/files/readfile.go new file mode 100644 index 0000000..ac3604d --- /dev/null +++ b/utils/files/readfile.go @@ -0,0 +1,74 @@ +package files + +import ( + "bufio" + "os" + "strconv" + "strings" +) + +func SplitNewline(path string) ([]string, error) { + var lines []string + + f, err := os.Open(path) + if err != nil { + return lines, err + } + defer f.Close() + + scanner := bufio.NewScanner(f) + for scanner.Scan() { + lines = append(lines, scanner.Text()) + } + + return lines, nil +} + +func SplitNewlineToInt(path string) ([]int, error) { + var lines []int + + f, err := os.Open(path) + if err != nil { + return lines, err + } + defer f.Close() + + scanner := bufio.NewScanner(f) + for scanner.Scan() { + line, err := strconv.Atoi(scanner.Text()) + if err != nil { + return lines, err + } + + lines = append(lines, line) + } + + return lines, nil +} + +func SplitCommaToInt(path string) ([]int, error) { + var intSlice []int + var stringSlice []string + + f, err := os.Open(path) + if err != nil { + return intSlice, err + } + defer f.Close() + + scanner := bufio.NewScanner(f) + for scanner.Scan() { + stringSlice = strings.Split(scanner.Text(), ",") + } + + for _, v := range stringSlice { + position, err := strconv.Atoi(v) + if err != nil { + return intSlice, err + } + + intSlice = append(intSlice, position) + } + + return intSlice, nil +} diff --git a/utils/readfile.go b/utils/readfile.go deleted file mode 100644 index 7a4d258..0000000 --- a/utils/readfile.go +++ /dev/null @@ -1,46 +0,0 @@ -package utils - -import ( - "bufio" - "os" - "strconv" -) - -func ReadFile(path string) ([]string, error) { - var lines []string - - f, err := os.Open(path) - if err != nil { - return lines, err - } - defer f.Close() - - scanner := bufio.NewScanner(f) - for scanner.Scan() { - lines = append(lines, scanner.Text()) - } - - return lines, nil -} - -func ReadFileToInt(path string) ([]int, error) { - var lines []int - - f, err := os.Open(path) - if err != nil { - return lines, err - } - defer f.Close() - - scanner := bufio.NewScanner(f) - for scanner.Scan() { - line, err := strconv.Atoi(scanner.Text()) - if err != nil { - return lines, err - } - - lines = append(lines, line) - } - - return lines, nil -} -- 2.44.0