Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
7 / 7 / 3
Регистрация: 03.12.2015
Сообщений: 113
1

Чтение текстовых файлов из SFX

26.12.2015, 15:40. Показов 2379. Ответов 30
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток уважаемые господа. Собственно возникла очень большая потребность в том чтобы читать текстовые файлы с SFX которые лежат в нем. Либо если такой вариант не реализуем, тогда извлечь в %temp% SFX полностью, скажем в подпапку "test" и уже потом оттуда читать файлы. Но собственно вопрос, как это сделать? Либо напрямую читать, либо распаковать. Помогите пожалуйста. Либо носом ткните в готовую библиотеку, желательно с документаций. Интересует именно SFX тип! Спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.12.2015, 15:40
Ответы с готовыми решениями:

Чтение и запись текстовых файлов
Дан текстовый файл (in.txt) содержащий список учащихся и их оценки по трем предметам:...

Чтение и обработка текстовых файлов
Имеется текстовый файл, содержащий строки, первые символы которых обозначают различные типы данных...

Чтение из всех текстовых файлов в каталоге
Обьясните и лучше с кодом след задачу: Есть папка, в которой целая куча txt файликов. Как мне...

Чтение из текстовых файлов
я новичок в C# вопрос такой. Есть идея создать программу. в общем то несложную) Но с C# работать...

30
7 / 7 / 3
Регистрация: 03.12.2015
Сообщений: 113
27.12.2015, 22:27  [ТС] 21
Author24 — интернет-сервис помощи студентам
Woldemar89, OwenGlendower, господа все получилось! Все распаковал!!! Урааа! Подключил библиотеку "SevenZipSharp" - после чего написал вот такой код!
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
using SevenZip;
using System;
using System.IO;
using System.Windows.Forms;
 
namespace DevelNextDecompiler
{
    public partial class Form1 : Form
    {
        
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                SevenZip.SevenZipExtractor.SetLibraryPath(@"C:\Users\Proci\Desktop\decompile\7z64.dll");
                SevenZipExtractor se = new SevenZipExtractor(openFileDialog1.FileName);
                se.BeginExtractArchive(Path.GetTempPath()+"\\DND\");
                se.ExtractionFinished += new EventHandler<EventArgs>(se_ExtractionFinished);
            }
        }
        void se_ExtractionFinished(object sender, EventArgs e)
        {
            MessageBox.Show("Готово!");
        }
    }
}
Осталось 2 последних вопроса!

1. Как мне сделать прогресс бар который отображал бы ход выполнения распаковки?
2. Как указать библиотеке что распаковывать следует не весь архив, а только одну папку которая в нем храниться?

Спасибо всем!
0
TheGreatCornholio
1254 / 732 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
27.12.2015, 22:41 22
Цитата Сообщение от Vladislav717 Посмотреть сообщение
может вы разберетесь?!
Вроде все более-менее просто.
C#
1
2
3
4
using SevenZip;
//....    
SevenZip.SevenZipExtractor sze = new SevenZipExtractor(@"test.exe");
//дальше по методам - ExtractFiles, BeginExtractArchive итд
Вот только эта либа требует установленного 7-Zip, а конкретно дллку в директории какую то.
Он у меня не установлен, а устанавливать лень, поэтому попробуй сам покопать, не должно сверх сложно быть,
если 7-Zip умеет работать с SFX ZIP, коим и является test.exe в данном случае.

Добавлено через 2 минуты
Ну вот, отлично, можешь же, когда захочешь.
Цитата Сообщение от Vladislav717 Посмотреть сообщение
Как мне сделать прогресс бар
Там в методах, вроде, какие то коллбеки можно установить или на события подписаться. Попробуй подписаться на sze.Extracting.
Цитата Сообщение от Vladislav717 Посмотреть сообщение
Как указать библиотеке что распаковывать следует не весь архив
Метод ExtractFiles какой то коллбек принимает, возможно в нем фильтрануть можно.
0
7 / 7 / 3
Регистрация: 03.12.2015
Сообщений: 113
27.12.2015, 22:43  [ТС] 23
Woldemar89, я оказывается уже опередил тебя. Что делать насчет тех 2-х вопросов?
0
TheGreatCornholio
1254 / 732 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
27.12.2015, 22:45 24
Цитата Сообщение от Vladislav717 Посмотреть сообщение
Что делать насчет тех 2-х вопросов?
Почему ты так уверен, что я эту либу знаю, как свои пять пальцев ?
Первый раз ее вижу
0
7 / 7 / 3
Регистрация: 03.12.2015
Сообщений: 113
27.12.2015, 22:47  [ТС] 25
Написал что-то вроде такого
C#
1
se.Extracting += new EventHandler<ProgressEventArgs>(progress);
и соответственно создал метод. Но вот что в этом самом методе писать, ума не приложу
0
TheGreatCornholio
1254 / 732 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
27.12.2015, 22:54 26
Цитата Сообщение от Vladislav717 Посмотреть сообщение
Но вот что в этом самом методе писать, ума не приложу
ProgressEventArgs что в себе содержат глянь.

Добавлено через 1 минуту
C#
1
2
3
4
        void progress(object sender, ProgressEventArgs e)
        {
            e. //че тут есть?
        }
Добавлено через 2 минуты
e.PercentDone наверно? Не торопись задавать вопросы, там на поверхности ответы лежат практически.
0
7 / 7 / 3
Регистрация: 03.12.2015
Сообщений: 113
27.12.2015, 22:56  [ТС] 27
Woldemar89, не знаю как
0
TheGreatCornholio
1254 / 732 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
27.12.2015, 22:58 28
Цитата Сообщение от Vladislav717 Посмотреть сообщение
не знаю как
Точку после е поставь

Так попробуй.
C#
1
2
3
4
5
6
        se.Extracting += new EventHandler<ProgressEventArgs>(progress);
 
        void progress(object sender, ProgressEventArgs e)
        {
            this.Text = e.PercentDone.ToString();
        }
0
7 / 7 / 3
Регистрация: 03.12.2015
Сообщений: 113
27.12.2015, 23:01  [ТС] 29
Woldemar89, насчет не знаю это я не о том.
Все верно работает как ты уже и говорил! Написал вот так
C#
1
progressBar1.Value = e.PercentDone;
Но вопрос в том как задать прогресс бару максимальное значение, откуда его брать и как правильно это сделать?
0
TheGreatCornholio
1254 / 732 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
27.12.2015, 23:03 30
Цитата Сообщение от Vladislav717 Посмотреть сообщение
Но вопрос в том как задать прогресс бару максимальное значение
В смысле? В процентах макс значение 100 вообще-то, в большинстве случаев.
0
7 / 7 / 3
Регистрация: 03.12.2015
Сообщений: 113
27.12.2015, 23:06  [ТС] 31
Woldemar89, я лоханулся - я думал оно возвращает не проценты, а номер файла который оно распаковало ну как бы автоинкремент. А оказывается оно проценты возвращает. Спасибо по этому вопросов больше нет! Остался 1 вопрос.

Нужно распаковать 1 папку из архива, а не весь архив. Гораздо быстрее и гораздо удобнее!
0
27.12.2015, 23:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.12.2015, 23:06
Помогаю со студенческими работами здесь

Запись-чтение текстовых файлов
В связи с неожиданным переходом с C# на Java появилось много тьмы. А именно мистическое...

Чтение только текстовых файлов
Эта программа считывает любые файлы, а я хочу чтобы она считывала только текстовые файлы....

Чтение и запись текстовых файлов
Строки исходного файла записать в новый файл, добавив знак &quot;?&quot; после первого слова строки.

Чтение данных из текстовых файлов
Есть текстовый файл со строками данных, вопрос: каким образом можно записать эти данные например в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
31
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru