本文整理汇总了Golang中bufio.Scanner类的典型用法代码示例。如果您正苦于以下问题:Golang Scanner类的具体用法?Golang Scanner怎么用?Golang Scanner使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。

在下文中一共展示了Scanner类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。

示例1: getContinueInput

func getContinueInput(scanner *bufio.Scanner) bool {
    ok := scanner.Scan()
    if !ok {
        return false
    }
    return scanner.Text() == "y"
}

开发者ID:caneroj1,项目名称:cardsData,代码行数:7,代码来源:readData.go

示例2: PushFile

func PushFile(host string, port int, fname string) {
    var scanner *bufio.Scanner

    if len(fname) == 0 {
        scanner = bufio.NewScanner(os.Stdin)
    } else {
        file, err := os.Open(fname)
        defer file.Close()

        if err != nil {
            fmt.Fprintln(os.Stderr, "ERROR", err)
            return
        }

        scanner = bufio.NewScanner(file)
    }

    addr := fmt.Sprintf("%s:%d", host, port)
    conn, err := net.Dial("tcp", addr)

    if err != nil {
        fmt.Fprintln(os.Stderr, "ERROR:", err)
        return
    }

    for scanner.Scan() {
        fmt.Fprintln(conn, scanner.Text())
    }
}

开发者ID:gophergala2016,项目名称:fireup,代码行数:29,代码来源:push.go

示例3: GetNextLine

func GetNextLine(i int, s *bufio.Scanner) string {
    ok := s.Scan()
    if !ok {
        panic(fmt.Sprintf("EOF. expected more lines during problem %v", i))
    }
    return s.Text()
}

开发者ID:Kashomon,项目名称:go-jam,代码行数:7,代码来源:base.go

示例4: media

func (this *M3U) media(scanner *bufio.Scanner) {
    line := scanner.Text()
    buf := make(map[string]string)
    scanner.Scan()
    l2 := scanner.Text()
    scanner.Scan()
    toMap(line[strings.Index(line, ":")+1:]+","+l2[strings.Index(l2, ":")+1:], buf)
    rank := 0
    switch buf["VIDEO"] {
    case "chunked":
        rank = 1
    case "high":
        rank = 2
    case "medium":
        rank = 3
    case "low":
        rank = 4
    case "mobile":
        rank = 5
    }
    this.PlayLists = append(this.PlayLists, M3UStream{
        Video:      buf["VIDEO"],
        Name:       buf["NAME"],
        Resolution: buf["RESOLUTION"],
        Location:   scanner.Text(),
        Rank:       rank,
    })
}

开发者ID:pranked,项目名称:twitchcap,代码行数:28,代码来源:m3u.go

示例5: phasesFromLog14

// phasesFromLog14 parses the phases for a single Go 1.4 GC cycle.
func phasesFromLog14(scanner *bufio.Scanner) (phases []Phase, haveBegin bool) {
    sub := gc14Log.FindStringSubmatch(scanner.Text())

    n := atoi(sub[1])
    stop, sweepTerm, markTerm, shrink := atoi(sub[2]), atoi(sub[3]), atoi(sub[4]), atoi(sub[5])
    var begin int64
    if sub[6] != "" {
        begin = atoi64(sub[6][1:])
        haveBegin = true
    }

    phases = []Phase{
        // Go 1.5 includes stoptheworld() in sweep termination.
        {0, int64(stop+sweepTerm) * 1000, PhaseSweepTerm, n, 1, 1, true},
        // Go 1.5 includes stack shrink in mark termination.
        {0, int64(markTerm+shrink) * 1000, PhaseMarkTerm, n, 1, 1, true},
        {0, -1, PhaseSweep, n, 1, 0, false},
    }

    if haveBegin {
        for i := range phases {
            phases[i].Begin += begin
            begin += phases[i].Duration
        }
    }

    return
}

开发者ID:rchunping,项目名称:go-gcstats,代码行数:29,代码来源:parse.go

示例6: buildBoard

// buildBoard builds a "board" (an array) by scanning input, splitting comma-
// separated integers and inserting them into an array.
func buildBoard(input *bufio.Scanner, board *[81]int) {
    l := 0

    for input.Scan() {
        for i, n := range strings.Split(input.Text(), ",") {
            var val int

            // If i is a dash, val is 0
            if n == "-" {
                val = 0
            } else {
                // Convert i to an int
                val2, err := strconv.Atoi(n)
                if err != nil {
                    fmt.Println(os.Stderr, err)
                    os.Exit(2)
                }
                val = val2
            }

            board[i+9*l] = val
        }

        l++
    }
}

开发者ID:brownjohnf,项目名称:sudoku,代码行数:28,代码来源:sudoku.go

示例7: next

func next(in *bufio.Scanner, shouldScan bool) int {
    if shouldScan {
        in.Scan()
    }
    n, _ := strconv.Atoi(in.Text())
    return n
}

开发者ID:vishwesh5,项目名称:algo,代码行数:7,代码来源:1880.go

示例8: run

func run(ruleset *internal.RuleSet, scanner *bufio.Scanner, apiInstance api.API, unmatched *os.File) Statistics {
    stat := Statistics{
        perMetric: make(map[api.MetricKey]PerMetricStatistics),
    }
    for scanner.Scan() {
        input := scanner.Text()
        converted, matched := ruleset.MatchRule(input)
        if matched {
            stat.matched++
            perMetric := stat.perMetric[converted.MetricKey]
            perMetric.matched++
            reversed, err := ruleset.ToGraphiteName(converted)
            if *insertToDatabase {
                apiInstance.AddMetric(converted)
            }
            if err != nil {
                perMetric.reverseError++
            } else if string(reversed) != input {
                perMetric.reverseIncorrect++
            } else {
                perMetric.reverseSuccess++
            }
            stat.perMetric[converted.MetricKey] = perMetric
        } else {
            stat.unmatched++
            if unmatched != nil {
                unmatched.WriteString(input)
                unmatched.WriteString("\n")
            }
        }
    }
    return stat
}

开发者ID:postfix,项目名称:metrics,代码行数:33,代码来源:ruletester.go

示例9: importReader

func importReader(reader io.Reader, gzipped bool) {
    var scanner *bufio.Scanner
    if gzipped {
        gReader, err := gzip.NewReader(reader)
        if err != nil {
            log.Println("[ERR] My bad! I tried to start uncompressing your archive but failed.")
            log.Println("      Try checking the file, or send me the file so I can check it out.")
            return
        }
        defer gReader.Close()
        log.Println("[OK!] GZip detected, unzipping enabled")
        scanner = bufio.NewScanner(gReader)
    } else {
        scanner = bufio.NewScanner(reader)
    }
    log.Println("[OK!] Reading initialized")
    imported := 0
    skipped := 0
    // Now we scan ୧༼ಠ益ಠ༽୨
    for scanner.Scan() {
        status, _ := importLine(scanner.Text())
        if status {
            imported++
        } else {
            skipped++
        }
    }
    log.Println("[OK!] Reading completed")
    log.Println("      " + strconv.Itoa(imported) + " torrents imported")
    log.Println("      " + strconv.Itoa(skipped) + " torrents skipped")
}

开发者ID:unrealord,项目名称:bitcannon,代码行数:31,代码来源:import.go

示例10: getNextLine

func getNextLine(s *bufio.Scanner) string {
    more := s.Scan()
    if !more {
        checkScanError(s)
    }
    return s.Text()
}

开发者ID:rychipman,项目名称:m3u,代码行数:7,代码来源:m3u.go

示例11: scanLoop

func scanLoop(scanner *bufio.Scanner, outCh chan string, outTermCh chan bool) {
    first := true
    buf := new(bytes.Buffer)

    for scanner.Scan() {
        text := scanner.Text()
        if DeleteColor(text) == Delimiter {
            if first {
                first = false
            } else {
                text := strings.TrimSpace(buf.String())
                DebugPrint("shell", "out <- [%v]", text)
                outCh <- text
                buf = new(bytes.Buffer)
            }
        } else {
            DebugPrint("shell", "read [%v]", text)
            buf.WriteString(text + "\n")
        }
    }
    text := strings.TrimSpace(buf.String())
    DebugPrint("shell", "out <- [%v]", text)
    if text != "" {
        outCh <- text
    }
    outTermCh <- true
}

开发者ID:liquidz,项目名称:shelltest,代码行数:27,代码来源:shell.go

示例12: orderedRemoval

func orderedRemoval(scanner *bufio.Scanner) {
    var entries Entries
    rows := 0
    count := 0
    for scanner.Scan() {
        line := scanner.Text()
        parts := strings.Split(line, " ")
        parts = removeSpaces(parts)
        for col, str := range parts {
            entry := Entry{atoi(str), rows, col}
            entries = append(entries, entry)
            count++
        }
        rows++
    }
    fmt.Printf("Matrix dimensions: rows=%d, cols=%d\n", rows, count/rows)
    sort.Sort(entries)
    best := 0
    for i := 0; i < 1000; i++ {
        sum := run(entries, rows, count/rows)
        if sum > best {
            fmt.Printf("sum=%d, i=%d\n", sum, i)
            best = sum
        }
    }

}

开发者ID:benjgibbs,项目名称:Go,代码行数:27,代码来源:p345.go

示例13: parseFile

func parseFile(scanner *bufio.Scanner) (map[string]string, error) {
    translations := make(map[string]string)
    definitionRegexp := regexp.MustCompile(`^([\d\w\-_]+)\s*=\s*(".*")\s*(?:\#.*)?$`)
    emptyLineRegexp := regexp.MustCompile(`^(|\s*(\#.*)?)$`)

    for lineNumber := 1; scanner.Scan(); lineNumber++ {
        line := scanner.Text()

        if emptyLineRegexp.MatchString(line) {
            continue
        }

        matches := definitionRegexp.FindStringSubmatch(line)
        if len(matches) != 3 {
            return nil, errors.New(fmt.Sprintf("Malformed line :%d (%q)", lineNumber, line))
        }

        unquoted, err := strconv.Unquote(matches[2])
        if err != nil {
            return nil, errors.New(fmt.Sprintf("Malformed string :%d (%q)", lineNumber, line))
        }
        if _, ok := translations[matches[1]]; ok {
            return nil, errors.New(fmt.Sprintf("Multiple definitions of key %q", matches[1]))
        }

        translations[matches[1]] = unquoted
    }
    return translations, nil
}

开发者ID:N1xx1,项目名称:golang-i18n,代码行数:29,代码来源:i18n.go

示例14: readBoard

func readBoard(scanner *bufio.Scanner) (out board) {
    for scanner.Scan() {
        parts := strings.Split(scanner.Text(), ",")
        out = append(out, parts)
    }
    return out
}

开发者ID:zeebo,项目名称:mebipenny2015,代码行数:7,代码来源:main.go

示例15: adhocTextFix

func adhocTextFix(scanner *bufio.Scanner) string {
    text := scanner.Text()

    r := regexp.MustCompile("(^\\s*Open State.*Alphabetic    ) (The allowable values are:)")
    text = r.ReplaceAllString(text, "$1$2")

    r2 := regexp.MustCompile("^(Number Delta {26})(associated with the new quote)$")
    text = r2.ReplaceAllString(text, "$1                   $2")

    r3 := regexp.MustCompile("^ (Ask|Bid) Reference {41}The (ask|bid) reference number delta$")
    if r3.MatchString(text) {
        scanner.Scan()
        text = superimposeStrings(text, scanner.Text())
    }

    r4 := regexp.MustCompile("^Total Number of")
    if r4.MatchString(text) {
        text = "Total Number of Reference 5 2 Integer                 The number of single side deletes in this"
        scanner.Scan()
        scanner.Scan()
    }

    r5 := regexp.MustCompile("^Reference {45}The order/quote side reference number")
    if r5.MatchString(text) {
        scanner.Scan()
        scanner.Scan()
        text = ""
    }

    return text
}

开发者ID:ikravets,项目名称:ev,代码行数:31,代码来源:main.go

转自:https://vimsky.com/examples/detail/golang-ex-bufio-Scanner---class.html