New parser #2
43
src/main.rs
43
src/main.rs
|
@ -45,36 +45,29 @@ fn main() -> std::io::Result<()> {
|
||||||
let file = File::open(&args.path)?;
|
let file = File::open(&args.path)?;
|
||||||
let mut reader = io::BufReader::new(file);
|
let mut reader = io::BufReader::new(file);
|
||||||
|
|
||||||
let mut buffer = Vec::<u8>::new();
|
let mut buffer = String::new();
|
||||||
let mut word_count = 0u64;
|
let mut word_count = 0u64;
|
||||||
|
let mut do_break = false;
|
||||||
|
let line_chunk_size = 25;
|
||||||
|
|
||||||
// while {
|
while {!do_break} {
|
||||||
// let bytes_read = reader.read_until(b' ', &mut buffer).unwrap();
|
for _ in 0..line_chunk_size {
|
||||||
// bytes_read > 0
|
let bytes_read = reader.read_line(&mut buffer).unwrap();
|
||||||
// } {
|
if bytes_read == 0 {
|
||||||
// word_count += 1;
|
do_break = true;
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// if word_count < 5 {
|
let words = buffer.split_ascii_whitespace();
|
||||||
// let string = std::str::from_utf8(&buffer).unwrap();
|
|
||||||
// dbg!(string);
|
for word in words {
|
||||||
// }
|
word_count += 1;
|
||||||
// buffer.clear();
|
}
|
||||||
// }
|
|
||||||
loop {
|
|
||||||
buffer.clear();
|
|
||||||
let t = reader
|
|
||||||
.by_ref()
|
|
||||||
.bytes()
|
|
||||||
.map(|c| c.unwrap())
|
|
||||||
.take_while(|c|
|
|
||||||
c != &b' ' &&
|
|
||||||
c != &b'\n');
|
|
||||||
buffer.extend(t);
|
|
||||||
word_count += 1;
|
|
||||||
|
|
||||||
|
buffer.clear();
|
||||||
}
|
}
|
||||||
let string = std::str::from_utf8(&buffer).unwrap();
|
|
||||||
dbg!(string);
|
|
||||||
dbg!(word_count);
|
dbg!(word_count);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
Loading…
Reference in a new issue