я попробовал этот код
static HOST_FILE: &'static [u8] = include_bytes!("C:\\Users\\Downloads\\cbimage.png");
fn main() {
let host_str = std::str::from_utf8(HOST_FILE). unwrap();
println!("Hosts are:\n{}", &host_str[..42]);
}
Но он показывает мне ошибку:
поток 'main' запаниковал при вызове Result::unwrap()
по значению Err
: Utf8Error {valid_up_to: 66, error_len: Some(1) }', src\main.rs:48:51
трассировка стека
@Finomnis Я пробовал, но выдает ошибку Utf8Error {valid_up_to: 0, error_len: Some(1) }'
@Finomnis Я попробовал и второй пример. И появилась ошибка: индекс байта 42 выходит за пределы кода: static HOST_FILE: &'static str = include_str!("C:\\Users\\Desktop\\hello desktop. txt "); fn main() { println!("Хосты:\n{}", &HOST_FILE[..42]); } На что указывает число 42?
Ваши комментарии превращают вопрос в другой вопрос. Откройте новый с минимальным воспроизводимым примером, включая ваш код, сообщения об ошибках и текстовый файл.
@Finomnis В настоящее время у меня есть один пример, который содержит только этот код static HOST_FILE: &'static[u8] = include_bytes!("/etc/hosts"); fn main() { let host_str = std::str::from_utf8(HOST_FILE). развернуть(); println!("Хосты:\n{}", &host_str[..42]); } Но у меня выдает ошибку!
Пожалуйста, не используйте комментарии, чтобы обновить свой вопрос, отредактируйте свой вопрос напрямую :)
Но это дает мне ошибку!" - Пожалуйста, не делайте подобных заявлений, не показывая ошибки. Одно лишь знание того, что на вашем компьютере происходит сбой, не дает нам никакой информации, с которой мы могли бы вам помочь.
Я думаю .. не использовать 42
? Я не уверен, почему это часть другого вопроса, но никогда не копируйте и не вставляйте код из Интернета в свой проект, который вы не понимаете! Это одно из самых основных правил stackoverflow. Всегда разбирайтесь и проверяйте код, который вы копируете из Интернета. Есть тролли, и были случаи, когда люди делали других людей sudo rm -rf /
.
Что ж, теперь я изменил свой вопрос, я рассмотрю проблему 42 и удостоверюсь,
Как вы думаете, почему файл png действителен в формате utf8?
@cafce25 cafce25 Это не utf8, но он хочет преобразовать для передачи include_bytes Я прав?
Если это не так, то почему вы называете это std::str::from_utf8
?
@cafce25 cafce25 Теперь я изменил его и удалил std::str::from_utf8 Но он не добавил изображение в приложение, почему? fn main() { let bytes = include_bytes! ("C:\Пользователи\Загрузки\cbiimage.png"); распечатать! ("{:?}" Байт) ; }
Опять же, НЕ вставляйте многострочный код в комментарии.
Если вы хотите добавить к своему вопросу, вы можете отредактировать его и добавить тег, например EDIT: перед ним. Как в этом вопросе: stackoverflow.com/questions/74665076/…
static IMAGE: &'static [u8] = include_bytes!("C:\\Users\\Downloads\\cbimage.png");
fn main() {
println!("Image: {:?}", IMAGE);
}
Хотя я рекомендую использовать путь относительно вашего исходного кода, например
static IMAGE: &'static [u8] = include_bytes!("../cbimage.png");
fn main() {
println!("Image: {:?}", IMAGE);
}
И поместите cbimage.png
рядом со своим Cargo.toml
.
Отвечает ли это на ваш вопрос? Есть ли способ включить бинарные или текстовые файлы в библиотеку Rust?