~xenrox/aoc2021

c3bcb5e5201a0fc5526d232299361abf6accbb07 — Thorben Günther 2 years ago 6908c4d
Move file reading functions to sub package, rename functions

and add SplitCommaToInt
3 files changed, 36 insertions(+), 8 deletions(-)

M day01/main.go
M day03/main.go
R utils/{readfile.go => files/readfile.go}
M day01/main.go => day01/main.go +3 -3
@@ 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
	}

M day03/main.go => day03/main.go +2 -2
@@ 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
	}

R utils/readfile.go => utils/files/readfile.go +31 -3
@@ 1,12 1,13 @@
package utils
package files

import (
	"bufio"
	"os"
	"strconv"
	"strings"
)

func ReadFile(path string) ([]string, error) {
func SplitNewline(path string) ([]string, error) {
	var lines []string

	f, err := os.Open(path)


@@ 23,7 24,7 @@ func ReadFile(path string) ([]string, error) {
	return lines, nil
}

func ReadFileToInt(path string) ([]int, error) {
func SplitNewlineToInt(path string) ([]int, error) {
	var lines []int

	f, err := os.Open(path)


@@ 44,3 45,30 @@ func ReadFileToInt(path string) ([]int, error) {

	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
}