arnaucube
arnaucube/goKNNPublic Self-hosted repository
goKNN/readDataFile.go
readDataFile.goRaw
 1package main
 2
 3import (
 4	"io/ioutil"
 5	"strconv"
 6	"strings"
 7)
 8
 9func readDataset(path string, lineSeparation string, valueSeparation string) [][][]int {
10	var dataset [][][]int
11	b, err := ioutil.ReadFile(path)
12	check(err)
13	str := string(b)
14	str = strings.Replace(str, "\r", "", -1)
15	lines := strings.Split(str, lineSeparation)
16	for _, v1 := range lines {
17		params := strings.Split(v1, valueSeparation)
18		var datasetLine [][]int
19		var datasetLineEntry []int
20		var lastLineValue []int
21		for k2, v2 := range params {
22			value, err := strconv.Atoi(v2)
23			check(err)
24			if k2 < len(params)-1 {
25				datasetLineEntry = append(datasetLineEntry, value)
26			} else {
27				lastLineValue = append(lastLineValue, value)
28			}
29		}
30		datasetLine = append(datasetLine, datasetLineEntry)
31		datasetLine = append(datasetLine, lastLineValue)
32		dataset = append(dataset, datasetLine)
33	}
34	return dataset
35}
36
37func readInputs(path string, lineSeparation string, valueSeparation string) [][]int {
38	var dataset [][]int
39	b, err := ioutil.ReadFile(path)
40	check(err)
41	str := string(b)
42	str = strings.Replace(str, "\r", "", -1)
43	lines := strings.Split(str, lineSeparation)
44	for _, v1 := range lines {
45		params := strings.Split(v1, valueSeparation)
46		//var datasetLine [][]int
47		var datasetLineEntry []int
48		for _, v2 := range params {
49			value, err := strconv.Atoi(v2)
50			check(err)
51			datasetLineEntry = append(datasetLineEntry, value)
52
53		}
54		//datasetLine = append(datasetLine, datasetLineEntry)
55		dataset = append(dataset, datasetLineEntry)
56	}
57	return dataset
58}