Friday, February 5, 2021

GoLang - file analyze function

 package main


import (
    "fmt"
    "io/ioutil"
    "strconv"
    "strings"
)

func check(e error) {
    if e != nil {
        panic(e)
    }
}

func main() {
    var total float64
    var min float64
    var max float64
    var numlines float64
    total = 0
    numlines = 0
    max = 0
    min = 1000000000
    dat2 := make([]string200)
    // read the file
    daterr := ioutil.ReadFile("random_numbers1.txt")
    check(err)
    dat2 = strings.Split(string(dat), "\r\n")
    // iterate through the text file
    for i := 0; i < len(dat2); i++ {
        //fmt.Println("inside for loop", i)
        if figerr := strconv.ParseFloat(dat2[i], 64); err == nil {
            //total + new value
            total = total + fig
            numlines = numlines + 1
            if min > fig {
                min = fig
            }
            if max < fig {
                max = fig
            }

            //fmt.Println(fig)
        } else {
            // print error if not parsed
            fmt.Println(err)
        }
    }
    fmt.Println("Total is:", total)
    fmt.Println("Total fgures:", numlines)
    fmt.Println("Average is:", total/numlines)
    fmt.Println("Max: ", max, "Min: ", min)
}

No comments:

Post a Comment