From 1490a367c20ed9164353360aafec916c99e2aa28 Mon Sep 17 00:00:00 2001 From: Leo Dev Date: Fri, 21 Jun 2024 11:57:53 +0200 Subject: [PATCH] dll reader_alpha --- src/dll_reader.rs | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 src/dll_reader.rs diff --git a/src/dll_reader.rs b/src/dll_reader.rs new file mode 100644 index 0000000..2d11c4c --- /dev/null +++ b/src/dll_reader.rs @@ -0,0 +1,29 @@ +use std::{ + fs::File, + io::{BufReader, Read}, +}; + +use zip::{read::ZipFile, ZipArchive}; + +use crate::variable::Variables; + +pub fn read_dll(dll_path: String) -> Variables { + let mut vars = Variables::new(); + let dll_file = File::open(dll_path).expect("err_dll_read"); + let dll_reader = BufReader::new(dll_file); + let mut dll_zip = ZipArchive::new(dll_reader).expect("err_archive"); + for i in 0..dll_zip.len() { + let mut buf = Vec::new(); + let mut file = dll_zip.by_index(i).expect("err_dll_idx"); + let filename = file.name(); + if filename == "map.json" && file.is_file() { + file.read_to_end(&mut buf).expect("err_read_zip_file"); + println!( + "Filename: {}\nFileContents: {}", + file.name(), + String::from_utf8_lossy(&buf) + ); + } + } + vars +}