|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
29.08.2012, 21:52 | #11 |
Пользователь
Регистрация: 05.01.2012
Сообщений: 27
|
Попробовал внести изменения в код программы.
Если попытаться закрывать и открывать файлы тупо в лоб Код:
Насколько понял, данная ошибка связана с некорректным закрытием файла (пытаюсь закрыть его, не оборвав поток). Если код закрытия написать в следующем виде: Код:
Но появляется новая, связанная с открытием файла (строка 144 файла filecore.cpp). Наверное, есть смысл попробовать создать отдельно функции, закрывающие и открывающие файл. |
29.08.2012, 23:23 | #12 | |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
Цитата:
ASSERT(m_hFile != INVALID_HANDLE_VALUE); Иными словами, вы пытаетесь закрыть файл, который либо уже закрыт, либо не был открыт. GetFileSize небось тоже MAXDWORD возвращает. Неплохо проверять вызовы на предмет ошибок. |
|
05.09.2012, 21:55 | #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" создается. Не могу понять, почему... |
15.09.2012, 21:14 | #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.09.2012, 23:15 | #15 |
Пользователь
Регистрация: 05.01.2012
Сообщений: 27
|
Код StopFile привожу ниже:
Код:
Сейчас главное, чтобы заработало. А вот насколько можно использовать Sqlite3? Ни разу не ней/ним не сталкивался. Можно поподробнее |
16.09.2012, 01:02 | #16 |
Пользователь
Регистрация: 28.07.2011
Сообщений: 14
|
Ой! Извиняюсь. Не заметил код выше.
Вроде все правильно... у меня примерно этот же код... А имена файлов одинаковые? Sqlite3 - встраиваемая библиотека поддерживающая базы данных используя Sql запросы, но урезанная до немогу, в основном для локальных приложений а не для клиент-серверных. Ее используют многие проги напр Nokia PC Suite,Скайп. Да на этом сайте есть куча тем о нем. Работать с ней очень просто и удобно. Особенно выборку каких либо данных... например по времени или за период времени, или поиск нужных записей и т.п. Да простят меня модераторы - вот пример записи в базу... Если интересно, пиши в личку, а лучше на почту Код:
Последний раз редактировалось de-em; 16.09.2012 в 01:07. |
16.09.2012, 14:18 | #17 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
Мне непонятны две вещи. Во первых, пишем из какогото объекта myfile - откуда берется этот объект и куда идет результат от CreateFile. Второе, а где меняется имя файла - создается всегда файл с одним и тем же именем.
|
19.09.2012, 21:58 | #18 |
Пользователь
Регистрация: 05.01.2012
Сообщений: 27
|
Давайте по-порядку!
Объект myfile я создал,чтобы проверить, как закрывается предыдущий файл и открывается новый. Чтобы не заморачиваться с присваиванием текущего имени файла (оно зависит от даты и времени) сделал топорно Код:
Код:
|
19.09.2012, 22:02 | #19 |
Пользователь
Регистрация: 05.01.2012
Сообщений: 27
|
А вообще, не могу понять вот что:
Есть функция, где я использую для закрытия и открытия файла myFile.Close и newFile.Open: Код:
А вот myfile.txt почему-то не создается. Почему? |
20.09.2012, 14:01 | #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 |