Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "encoding/csv"
- "fmt"
- "io"
- "log"
- "os"
- "time"
- )
- func main() {
- start := time.Now()
- strS := make(chan string)
- errorme := make(chan error)
- done := make(chan bool)
- go readercsv("./50000-Sales-Records.csv", strS, errorme, done)
- loop:
- for {
- select {
- case ss := <-strS:
- fmt.Println(ss)
- case err := <-errorme:
- log.Fatal(err)
- case <-done:
- break loop
- }
- }
- fmt.Println(time.Since(start))
- // estimasi 227 millisecond
- // kodenya kacau!!
- }
- func readercsv(filepath string, s chan string, errorme chan error, done chan bool) {
- csvfile, err := os.Open(filepath)
- if err != nil {
- errorme <- err
- }
- reader := csv.NewReader(csvfile)
- tel := make(chan string)
- for {
- go func() {
- record, err := reader.Read()
- if err == io.EOF {
- done <- true
- }
- if err != nil {
- errorme <- err
- }
- tel <- fmt.Sprintf(record[2])
- }()
- select {
- case v := <-tel:
- s <- v
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement