예제 #1
0
파일: example_test.go 프로젝트: gwenn/yacr
func Example_reader() {
	r := yacr.DefaultReader(strings.NewReader("c1,\"c\"\"2\",\"c\n3\",\"c,4\""))
	fmt.Print("[")
	for r.Scan() {
		fmt.Print(r.Text())
		if r.EndOfRecord() {
			fmt.Print("]\n")
		} else {
			fmt.Print(" ")
		}
	}
	if err := r.Err(); err != nil {
		fmt.Println(err)
	}
	// Output: [c1 c"2 c
	// 3 c,4]
}
예제 #2
0
파일: example_test.go 프로젝트: gwenn/yacr
func ExampleReader_ScanRecord() {
	r := yacr.DefaultReader(strings.NewReader("11,12,13,14\n21,22,23,24\n31,32,33,34\n41,42,43,44"))
	fmt.Print("[")
	var i1, i2, i3, i4 int
	for {
		if n, err := r.ScanRecord(&i1, &i2, &i3, &i4); err != nil {
			fmt.Println(err)
			break
		} else if n != 4 {
			break
		}
		fmt.Println(i1, i2, i3, i4)
	}
	fmt.Print("]")
	// Output: [11 12 13 14
	// 21 22 23 24
	// 31 32 33 34
	// 41 42 43 44
	// ]
}
예제 #3
0
파일: example_test.go 프로젝트: gwenn/yacr
func ExampleReader_Value() {
	r := yacr.DefaultReader(strings.NewReader("1,\"2\",3,4"))
	fmt.Print("[")
	var i int
	for r.Scan() {
		if err := r.Value(&i); err != nil {
			fmt.Println(err)
			break
		}
		fmt.Print(i)
		if r.EndOfRecord() {
			fmt.Print("]\n")
		} else {
			fmt.Print(" ")
		}
	}
	if err := r.Err(); err != nil {
		fmt.Println(err)
	}
	// Output: [1 2 3 4]
}
예제 #4
0
파일: main.go 프로젝트: gwenn/yacr
func Fuzz(data []byte) int {
	r := yacr.DefaultReader(bytes.NewReader(data))
	for r.Scan() {
		r.Text()
		if r.EndOfRecord() {
			break
		}
	}
	err := r.Err()
	if err != nil {
		return 0
	}

	// Double quotes are not preserved when not strictly needed
	w := yacr.DefaultWriter(ioutil.Discard)
	w.Write(data)
	err = w.Err()
	if err != nil {
		return 0
	}
	return 1
}