Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 1
Регистрация: 02.12.2015
Сообщений: 17
1
.NET 4.x

Чтение из файла, запись изменений в новый файл и печать

01.02.2019, 18:29. Показов 1459. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пытаюсь распечатать измененный файл, но получаю исключение
Вызвано исключение: "System.Runtime.InteropServices.COMException" в System.Windows.Forms.dll
Поток 0xacc завершился с кодом 0 (0x0).
Я так понимаю, что на момент открытия файла он еще не существует, как мне сделать ожидание завершения записи в файл?
Или может есть другой способ реализации?
Вот кусок кода, который должен выполнять поставленную задачу:
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
private void CreateReceiptLabel()
        {
            String curDir = Directory.GetCurrentDirectory();
            String bodyFile = "";
            String template;
 
            String headerLine= "...";
 
            template = curDir + "\\template\\tmpLabel.htm";
            using (StreamReader reader = new StreamReader(template, Encoding.Default))
            {
                bodyFile = reader.ReadToEnd();
                bodyFile = bodyFile.Replace("<%HiderLine%>", headerLine);
            }
 
            using (StreamWriter writer = new StreamWriter(curDir + "\\template\\reLabel.htm", false, Encoding.Default))
            {
                writer.Write(bodyFile);
            }
 
            WebBrowser webBrowser = new WebBrowser
            {
                Url = new Uri(String.Format("file:///{0}/template/reLabel.htm", curDir))
            };
 
                webBrowser.Print();
        }
Добавлено через 2 часа 58 минут
Обратил внимание, что если закомментировать строчку "webBrowser.Print();" то никаких исключений не возникает, поток просто завершается.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.02.2019, 18:29
Ответы с готовыми решениями:

Запись List<string> в файл и чтение из файла
Всем привет! есть List&lt;string&gt; код: List&lt;string&gt; list = new List&lt;string&gt;(); Что мне нодо......

Функция Random. Запись в файл. Чтение файла
Всем доброго времени суток!:)У меня в Lable ставятся числа Randomom. 10 чисел. Как написать код...

Чтение значений из файла, обработка и запись в новый файл
Program yravnenie(input,output); Var x,a:longint; Begin Assign(input,'input.txt'); ...

Чтение из файла, редактирование его и запись в новый файл
В общем, задача такая: Программе на вход подается исходный текст какой-нибудь программы на С.....

3
10 / 8 / 2
Регистрация: 23.10.2017
Сообщений: 45
04.02.2019, 15:00 2
Кажется дело в этой стоке
C#
1
Url = new Uri(String.Format("file:///{0}/template/reLabel.htm", curDir))
Посмотри через MessageBox правильные ли данные принимает Url
C#
1
MessageBox.Show(string.Format("file:///{0}/template/reLabel.htm", curDir));
0
Администратор
Эксперт .NET
17566 / 13788 / 5299
Регистрация: 17.03.2014
Сообщений: 28,267
Записей в блоге: 1
04.02.2019, 15:37 3
Цитата Сообщение от oxy-fox Посмотреть сообщение
Я так понимаю, что на момент открытия файла он еще не существует, как мне сделать ожидание завершения записи в файл?
Ожидания здесь не требуется. Файл уже создан. Данные в него записаны.

Цитата Сообщение от oxy-fox Посмотреть сообщение
если закомментировать строчку "webBrowser.Print();" то никаких исключений не возникает, поток просто завершается.
Этот код выполняется в отдельном потоке? А пометить его как STA ты не забыл перед запуском? Это необходимо для корректной работы WebBrowser
C#
1
2
Thread thread = new Thread(...);
thread.SetApartmentState(ApartmentState.STA);
0
0 / 0 / 1
Регистрация: 02.12.2015
Сообщений: 17
04.02.2019, 15:49  [ТС] 4
Цитата Сообщение от nikita13579 Посмотреть сообщение
Посмотри через MessageBox правильные ли данные принимает Url
C#
1
MessageBox.Show(string.Format("file:///{0}/template/reLabel.htm", curDir));
Показывает полный путь к файлу

Добавлено через 8 минут
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Этот код выполняется в отдельном потоке? А пометить его как STA ты не забыл перед запуском? Это необходимо для корректной работы WebBrowser

C#
1
2
Thread thread = new Thread(...);
thread.SetApartmentState(ApartmentState.STA);
Именно так и запускаю)

Попробовал сделать так:
C#
1
2
3
Invoke(new Action(() => webBrowser = new WebBrowser()));
Invoke(new Action(() => webBrowser.Url = new Uri(String.Format("file:///{0}/template/reAcc.htm", curDir))));
webBrowser.Print();
В большинстве случаев работает, но иногда все-таки появляется исключение...
Но не уверен, что так правильно...
0
04.02.2019, 15:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.02.2019, 15:49
Помогаю со студенческими работами здесь

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

Чтение файла, замена слов и запись результата в новый файл
Помогите написать конвертер текста Например, у меня есть файл с определенным текстом. Мне нужно...

Чтение файла, чтение названия папки где находится файл, запись данных на PHP
Допустим у нас есть структура с папками типа Large -&gt; Vehicles -&gt; Firetruck_0 В этой папке лежит...

Ввод с клавиатуры и запись в файл, чтение из файла и запись в массив, вывод из массива на экран
1.Ввод с клавиатуры и запись в файл, чтение из файла и запись в массив, вывод из массива на экран...


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

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