![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Пользователь
Регистрация: 05.01.2012
Сообщений: 27
|
![]()
Попробовал внести изменения в код программы.
Если попытаться закрывать и открывать файлы тупо в лоб Код:
Насколько понял, данная ошибка связана с некорректным закрытием файла (пытаюсь закрыть его, не оборвав поток). Если код закрытия написать в следующем виде: Код:
![]() Но появляется новая, связанная с открытием файла (строка 144 файла filecore.cpp). ![]() Наверное, есть смысл попробовать создать отдельно функции, закрывающие и открывающие файл. |
![]() |
![]() |
![]() |
#12 | |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,372
|
![]() Цитата:
ASSERT(m_hFile != INVALID_HANDLE_VALUE); Иными словами, вы пытаетесь закрыть файл, который либо уже закрыт, либо не был открыт. GetFileSize небось тоже MAXDWORD возвращает. Неплохо проверять вызовы на предмет ошибок. |
|
![]() |
![]() |
![]() |
#13 |
Пользователь
Регистрация: 05.01.2012
Сообщений: 27
|
![]()
Добрый вечер всем!
Помогите разрулить следующую ситуацию. Создал функцию, которая проверяет объем файла. Если он не превышает 100 кБ, то проводит в него запись, если превышает, то закрывает текущий файл и создает файл myfile.txt. Код ниже: Код:
void StopFile() { if(reader) //если поток чтения работает, завершить его; проверка if(reader) обязательна, иначе возникают ошибки {TerminateThread(reader,0); CloseHandle(overlapped.hEvent); //нужно закрыть объект-событие CloseHandle(reader); } myFile.Close(); } Проблема в следующем: если я пишу Код:
Если же записать наоборот Код:
то "myfile.txt" создается. Не могу понять, почему... |
![]() |
![]() |
![]() |
#14 |
Пользователь
Регистрация: 28.07.2011
Сообщений: 14
|
![]()
А что пердставляет из себя StopFile()?
Если поможет... Лично я делал с испоьзованием Sqlite3. Запись в базу данных с интервалом 1 раз в секунду. За сутки набегало чуть больше метра. Данных 8 полей. Одно поле год, дата, время. Второе поле таймштамп. 3 float. 4 и 5 поле число до 0xFFFF. 6,7,8 поле типа boole. При желании можно сделать CreateBase также по дате, как уже говорилось выше, или даташтампу. Последний раз редактировалось de-em; 15.09.2012 в 21:29. |
![]() |
![]() |
![]() |
#15 |
Пользователь
Регистрация: 05.01.2012
Сообщений: 27
|
![]()
Код StopFile привожу ниже:
Код:
Сейчас главное, чтобы заработало. А вот насколько можно использовать Sqlite3? Ни разу не ней/ним не сталкивался. Можно поподробнее |
![]() |
![]() |
![]() |
#16 |
Пользователь
Регистрация: 28.07.2011
Сообщений: 14
|
![]()
Ой! Извиняюсь. Не заметил код выше.
![]() Вроде все правильно... у меня примерно этот же код... А имена файлов одинаковые? Sqlite3 - встраиваемая библиотека поддерживающая базы данных используя Sql запросы, но урезанная до немогу, в основном для локальных приложений а не для клиент-серверных. Ее используют многие проги напр Nokia PC Suite,Скайп. Да на этом сайте есть куча тем о нем. Работать с ней очень просто и удобно. Особенно выборку каких либо данных... например по времени или за период времени, или поиск нужных записей и т.п. Да простят меня модераторы - вот пример записи в базу... Если интересно, пиши в личку, а лучше на почту ![]() Код:
Последний раз редактировалось de-em; 16.09.2012 в 01:07. |
![]() |
![]() |
![]() |
#17 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,372
|
![]()
Мне непонятны две вещи. Во первых, пишем из какогото объекта myfile - откуда берется этот объект и куда идет результат от CreateFile. Второе, а где меняется имя файла - создается всегда файл с одним и тем же именем.
|
![]() |
![]() |
![]() |
#18 |
Пользователь
Регистрация: 05.01.2012
Сообщений: 27
|
![]()
Давайте по-порядку!
Объект myfile я создал,чтобы проверить, как закрывается предыдущий файл и открывается новый. Чтобы не заморачиваться с присваиванием текущего имени файла (оно зависит от даты и времени) сделал топорно Код:
Код:
|
![]() |
![]() |
![]() |
#19 |
Пользователь
Регистрация: 05.01.2012
Сообщений: 27
|
![]()
А вообще, не могу понять вот что:
Есть функция, где я использую для закрытия и открытия файла myFile.Close и newFile.Open: Код:
А вот myfile.txt почему-то не создается. Почему? |
![]() |
![]() |
![]() |
#20 |
Пользователь
Регистрация: 28.07.2011
Сообщений: 14
|
![]() |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
расшифровка данных, принятых с 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 |