|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
20.09.2012, 14:48 | #21 |
Пользователь
Регистрация: 05.01.2012
Сообщений: 27
|
to de-em
В идеале файл должен создаваться в том же самом потоке. Но, т.к. мне необходимо закрыть предыдущий файл, то я обрываю поток Код:
После обрыва потока закрываю старый файл Код:
Код:
Затык в том, что файл не создается. А следовательно, писать поток некуда |
20.09.2012, 15:13 | #22 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,330
|
Мне не совсем понятно - зачем обрывать поток при закрытии файла? Закройте да откройте все в одном потоке (который читает из COM порта). Далее, у вас все время есть то myFile то newFile. В принципе должен быть один файловый объект и надо открывать и закрывать его в одном потоке, либо надо синхронизировать доступ в объекту, в противном случае могут случаться Плохие Вещи. Далее, посмотрите на последний, третий аргумент у CFile::Open и воспользуйтесь им. Наверняка есть код ошибки - надо посмотреть что ломается. Вы уверены, что поток уже закончен и файл уже закрыт?
Последний раз редактировалось waleri; 20.09.2012 в 15:16. |
06.10.2012, 10:55 | #23 |
Пользователь
Регистрация: 05.01.2012
Сообщений: 27
|
Подправил код таким образом, чтобы можно было приостанавливать и стартовать поток при помощи Suspend/Resume, а не уничтожать его:
Создаю поток Код:
Код:
Но для меня осталось непонятным, почему если я открытие/создание файла ставлю после приостановки потока и закрытия файла Код:
Если наоборот, то все идет. Из-за чего так происходит? |
06.10.2012, 12:52 | #24 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,330
|
Да зачем останавливать и запускат поток?
Откройте COM порт Создайте поток и передайте параметром HANDLE порта В потоке откройте файл, циклично читайте из порта и пишите в файл. Если файл стал большим закройте файл и откройте новый. Когда надо завершить программу из главного потока закройте COM порт, тогда чтение прервется ошибкой. |
06.10.2012, 23:08 | #25 |
Пользователь
Регистрация: 05.01.2012
Сообщений: 27
|
Когда я закрываю файл, не обрывая поток, вываливается ошибка, ссылающаяся на файл filecore.cpp (номер строки не скажу, надо уточнить).
Она связана с некорректным закрытием файла. Из-за этого программу периодически "выбивает", а мне надо, чтобы она писала файлы в цикле. Вот поэтому я и "камасутрюсь" с потоком (его запуском и остановом). |
07.10.2012, 00:04 | #26 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,330
|
Я бы на вашем месте разобрался бы с вываливанием. Если это то вываливание, о котором шла речь пару страниц назад, то насколько я помню оно было связано с тем, что вы закрываете файл, который не был открыт, либо закрывается дважды.
|
07.10.2012, 01:29 | #27 |
Пользователь
Регистрация: 05.01.2012
Сообщений: 27
|
ОК, перепроверю.
Хотя в прошлый раз ошибка уходила, когда перед тем, как закрыть файл, предварительно останавливал поток данных с порта. Но пересмотрю код еще раз. Возможно это было совпадение |
24.12.2012, 00:00 | #28 |
Пользователь
Регистрация: 05.01.2012
Сообщений: 27
|
Доброго времени суток.
Извиняюсь, что выпал из жизни. После долгих мучений удалось реализовать следующий код: Код:
ГГГГ-ММ-ДД-ЧЧ-ММ-СС,МСС.dat Согласен, что код далек от идеала. Поэтому будет дорабатываться. Готов выслушать замечания и предложения. Отдельное спасибо waleri за помощь. Очень помог! |
24.12.2012, 07:27 | #29 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,330
|
Что мешает копировать напрямую из stroke в szNewFileName?
У CString должен быть метод Format() - наверно будет лучше его использовать. |
24.12.2012, 11:55 | #30 | ||
Пользователь
Регистрация: 05.01.2012
Сообщений: 27
|
Цитата:
Код:
Цитата:
Можно поподробнее |
||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
расшифровка данных, принятых с COM-порта | IIUH | Общие вопросы Delphi | 25 | 12.04.2021 14:05 |
отправка/принятие данных с порта. | romank26 | Win Api | 1 | 26.03.2012 12:51 |
Считка данных по-битно из COM порта | Terran | Общие вопросы Delphi | 3 | 23.11.2011 04:19 |
Чтение данных с COM порта 232 | Dimitr_88 | Общие вопросы C/C++ | 10 | 03.09.2010 10:39 |
Приём данных с com порта | kyc0k | Помощь студентам | 3 | 28.03.2008 15:04 |