Fixed length records: Difference between revisions

Content added Content deleted
m (Minor edit to C++ code)
(Added Rust solution)
Line 1,172: Line 1,172:
{{out|output|text=  when using the default input file:}}
{{out|output|text=  when using the default input file:}}
{{out}}
{{out}}
<pre>
8.........7.........6.........5.........4.........3.........2.........1...1 eniL
2 eniL
3 eniL
4 eniL

6 eniL
7 eniL
............................................................8 enil detnednI
NIGRAM TR 9 eniL
</pre>

=={{header|Rust}}==
<lang rust>use std::io::prelude::*;
use std::io::{BufReader, BufWriter};
use std::fs::File;

fn reverse_file(input_filename: &str, output_filename: &str,
record_len: usize) -> std::io::Result<()> {
let mut input = BufReader::new(File::open(input_filename)?);
let mut output = BufWriter::new(File::create(output_filename)?);
let mut buffer = vec![0; record_len];
while input.read(&mut buffer)? == record_len {
buffer.reverse();
output.write_all(&buffer)?;
}
output.flush()?;
Ok(())
}

fn main() {
match reverse_file("infile.dat", "outfile.dat", 80) {
Ok(()) => {}
Err(error) => eprintln!("I/O error: {}", error)
}
}</lang>

{{out}}
After converting with dd:
<pre>
<pre>
8.........7.........6.........5.........4.........3.........2.........1...1 eniL
8.........7.........6.........5.........4.........3.........2.........1...1 eniL