init
This commit is contained in:
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
/target
|
7
Cargo.lock
generated
Normal file
7
Cargo.lock
generated
Normal file
@@ -0,0 +1,7 @@
|
||||
# This file is automatically @generated by Cargo.
|
||||
# It is not intended for manual editing.
|
||||
version = 4
|
||||
|
||||
[[package]]
|
||||
name = "hexdump"
|
||||
version = "0.1.0"
|
6
Cargo.toml
Normal file
6
Cargo.toml
Normal file
@@ -0,0 +1,6 @@
|
||||
[package]
|
||||
name = "hexdump"
|
||||
version = "0.1.0"
|
||||
edition = "2024"
|
||||
|
||||
[dependencies]
|
3
example.txt
Normal file
3
example.txt
Normal file
@@ -0,0 +1,3 @@
|
||||
forsen is bald
|
||||
forsen is bald
|
||||
forsen is bald
|
36
src/hd_ai.rs
Normal file
36
src/hd_ai.rs
Normal file
@@ -0,0 +1,36 @@
|
||||
use std::env;
|
||||
use std::fs::File;
|
||||
use std::io::{self, Read};
|
||||
|
||||
fn main() -> io::Result<()> {
|
||||
// Get the file name from command line arguments
|
||||
let args: Vec<String> = env::args().collect();
|
||||
if args.len() < 2 {
|
||||
eprintln!("Usage: {} <filename>", args[0]);
|
||||
return Ok(());
|
||||
}
|
||||
let filename = &args[1];
|
||||
|
||||
// Open the file
|
||||
let mut file = File::open(filename)?;
|
||||
let mut buffer = Vec::new();
|
||||
|
||||
// Read the file into the buffer
|
||||
file.read_to_end(&mut buffer)?;
|
||||
|
||||
// Print the hex dump
|
||||
for (i, byte) in buffer.iter().enumerate() {
|
||||
// Print the address
|
||||
if i % 16 == 0 {
|
||||
if i != 0 {
|
||||
println!(); // New line after every 16 bytes
|
||||
}
|
||||
print!("{:08x} ", i);
|
||||
}
|
||||
// Print the byte in hex format
|
||||
print!("{:02x} ", byte);
|
||||
}
|
||||
println!(); // Final new line
|
||||
|
||||
Ok(())
|
||||
}
|
30
src/main.rs
Normal file
30
src/main.rs
Normal file
@@ -0,0 +1,30 @@
|
||||
use std::env;
|
||||
use std::fs;
|
||||
|
||||
fn main() {
|
||||
let args: Vec<String> = env::args().collect();
|
||||
|
||||
if args.len() < 2 {
|
||||
eprintln!("Usage: {} <file>", args[0]);
|
||||
return;
|
||||
}
|
||||
|
||||
let file_path = &args[1];
|
||||
let contents = fs::read(file_path).expect("Failed to read file");
|
||||
|
||||
println!("File name: {file_path}\n");
|
||||
println!("Contents of the file but in hex:");
|
||||
|
||||
hex(&contents);
|
||||
}
|
||||
|
||||
fn hex(bytes: &[u8]) {
|
||||
for (i, &byte) in bytes.iter().enumerate() {
|
||||
if i % 8 == 0 {
|
||||
print!("\n{:08x}: ", i);
|
||||
}
|
||||
print!("{:04x} ", byte);
|
||||
}
|
||||
|
||||
println!();
|
||||
}
|
Reference in New Issue
Block a user