Trim
发布者:admin 发表于:416天前 阅读数:585 评论:0

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

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

示例1: ReverseScan

// Scan the datafile in reverse order using a custom separator and function.
// The provided function has two params, data and whether we at the end or not .
// This function will lock the whole file till it ends .
func (this *AOF) ReverseScan(sep []byte, fn func(data []byte, atEOF bool) bool) {
    this.Lock()
    defer this.Unlock()
    pos := int64(0)
    done := int64(0)
    data := []byte{}
    for {
        this.file.Seek(pos, 2)
        tmp := make([]byte, len(sep))
        n, _ := this.file.Read(tmp)
        pos -= int64(len(sep))
        if n > 0 {
            done += int64(n)
            data = append(tmp, data...)
        }
        if bytes.Equal(sep, tmp) {
            if !fn(bytes.Trim(data, string(sep)), false) {
                break
            }
            data = []byte{}
        }
        if done >= this.size {
            fn(bytes.Trim(data, string(sep)), true)
            break
        }
    }
    data = []byte{}
}

开发者ID:alash3al,项目名称:aof,代码行数:31,代码来源:aof.go

示例2: Scan

// Scan the datafile using a custom separator and function.
// The provided function has two params, data and whether we at the end or not .
// This function will lock the whole file till it ends .
func (this *AOF) Scan(sep []byte, fn func(data []byte, atEOF bool) bool) {
    this.Lock()
    defer this.Unlock()
    this.file.Seek(0, 0)
    data := []byte{}
    for {
        tmp := make([]byte, len(sep))
        n, e := this.file.Read(tmp)
        if n > 0 {
            data = append(data, tmp[0:n]...)
        }
        if e != nil || n == 0 {
            if len(data) > 0 {
                fn(bytes.Trim(data, string(sep)), true)
            }
            break
        }
        if bytes.Equal(sep, tmp) {
            if !fn(bytes.Trim(data, string(sep)), false) {
                break
            }
            data = []byte{}
        }
    }
    data = []byte{}
}

开发者ID:alash3al,项目名称:aof,代码行数:29,代码来源:aof.go

示例3: WiteToTSDB

func WiteToTSDB(channel chan []byte, cfg *Config) {
START:
    tcpAddr, err := net.ResolveTCPAddr("tcp4", cfg.OPENTSDB_ADDR)
    if err != nil {
        panic(fmt.Sprintf("error opentsdb address(%s)", cfg.OPENTSDB_ADDR))
    }
    conn, err := net.DialTCP("tcp4", nil, tcpAddr)
    if err != nil {
        slog.Error("connect tsdb server(%s) error(%s)", tcpAddr, err)
        time.Sleep(time.Second * 30)
        goto START
    }
    slog.Info("connected to opentsdb server %s", cfg.OPENTSDB_ADDR)
    conn.SetKeepAlive(true)
    defer conn.Close()
    for {
        select {
        case data, ok := <-channel:
            if ok {
                data = append(data, '\n')
                length, err := conn.Write(data)
                if err != nil {
                    slog.Error("write opentsdb error %s", err)
                    channel <- bytes.Trim(data, "\n")
                    time.Sleep(time.Second * 30)
                    goto START
                }
                dlog.Info("write opentsdb %d bytes, data:(%s)", length, string(bytes.Trim(data, "\n")))
            }
        }
    }
}

开发者ID:y8y,项目名称:OWL-v3,代码行数:32,代码来源:opentsdb.go

示例4: parseMeta

func parseMeta(buf *bytes.Buffer, repo string) {
    var name string
    pack := map[string]string{}
    pack["REPO"] = repo
    _, _ = buf.ReadByte()
    for {
        key, err := buf.ReadBytes('%')
        if err == io.EOF {
            break
        }
        key = bytes.Trim(key, "%")
        values, _ := buf.ReadBytes('%')
        values = bytes.Trim(values, "%")
        values = bytes.Replace(values, []byte("\n"), []byte(" "), -1)
        values = bytes.Trim(values, " ")
        if string(key) == "NAME" {
            name = string(values)
        }
        pack[string(key)] = string(values)
    }
    v, _ := packages[name]
    if v != nil {
        printf("%s exists\n", name)
    }
    packages[name] = pack
}

开发者ID:sbinet,项目名称:gur,代码行数:26,代码来源:pacman.go

示例5: ProtrackerParse

func ProtrackerParse(rawData *bytes.Buffer) (samples []Sample) {
    modTitle := string(bytes.Trim(rawData.Next(20), zerostring))
    for i := 0; i < 31; i++ {
        sampleTitle := modTitle + " - " + string(bytes.Trim(rawData.Next(22), zerostring))
        sampleLength := BigEndianBytesToInt(rawData.Next(2)) * 2
        if sampleLength >= uint16(2) &&
            len(sampleTitle) > 0 {
            samples = append(samples, Sample{
                Title:  sampleTitle,
                Length: int(sampleLength),
            })
        }
        //discard finetune (1 byte), volume (1 byte), repeat info (4 bytes)
        _ = rawData.Next(6)
    }

    songLength := rawData.Next(2)[0] //discard unused 127 byte.
    patternOrder := rawData.Next(133)[:songLength]
    // discard pattern data
    for i := 0; i < int(biggest(patternOrder))+1; i++ { // patterns start at 00, so add 1
        _ = rawData.Next(1024)
    }

    for i, s := range samples {
        samples[i].Data = rawData.Next(s.Length)
    }

    fmt.Println("Title:", modTitle, "Samples:", len(samples))
    return
}

开发者ID:minikomi,项目名称:ModRipper.go,代码行数:30,代码来源:ModRipper.go