2021-02-16 21:53:46 +01:00
|
|
|
import os
|
|
|
|
import io
|
|
|
|
|
|
|
|
fn read_file(file string, cap int) []string {
|
|
|
|
mut lines := []string{}
|
2021-03-01 00:18:14 +01:00
|
|
|
mut f := os.open(file) or { panic(err) }
|
2021-02-16 21:53:46 +01:00
|
|
|
defer {
|
|
|
|
f.close()
|
|
|
|
}
|
2021-05-13 09:26:10 +02:00
|
|
|
mut r := io.new_buffered_reader(reader: f, cap: cap)
|
2021-02-16 21:53:46 +01:00
|
|
|
for {
|
|
|
|
l := r.read_line() or { break }
|
|
|
|
lines << l
|
|
|
|
// println('Line: $l')
|
|
|
|
}
|
|
|
|
assert lines.len > 0
|
|
|
|
assert r.end_of_stream == true
|
|
|
|
println('------------------------------------------------ cap: ${cap:6}; read: ${lines.len:3} lines')
|
|
|
|
return lines
|
|
|
|
}
|
|
|
|
|
|
|
|
fn test_file_reader() {
|
2021-03-04 12:33:54 +01:00
|
|
|
for cap := 1; cap <= 10000; cap += 256 {
|
2021-02-16 21:53:46 +01:00
|
|
|
lines := read_file(@FILE, cap)
|
|
|
|
assert lines.last() == '// my last line'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// my last line
|