Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > Хитрый способ представления данных файла


Автор: raks123 16.6.2012, 18:17
У меня возникла проблема: мне нужно как то ухитриться открыть открыть файл. Беда в том, что в файл постоянно (через промежутки в 100-125 миллисекунд) записывается информация. Я кое-что заметил, что если открыть текстовым редактором этот файл, то запись продолжится без каких либо погрешностей. В визуализации я бум бум, да и процесс осложняется тем, что приложение кросс платформенное. Вообще можно ли "вшить" в программу текстовый редактор? Да и как искать текстовые редакторы линуха? Может у кого есть предложение получше?

Автор: JackYF 17.6.2012, 11:34
raks123, (в ответ на запрос модератору) если ты нашёл ответ, то лучше напиши его вкратце сюда.

Автор: raks123 17.6.2012, 12:10
Имея много поточное приложение и запись данных в текстовые файлы с флагами QIODevice::WriteOnly | QIODevice::Append, то ничего не мешает открыть эти файлы в основном (гуишном) потоке с флагом QIODevice::ReadOnly

Автор: math64 18.6.2012, 07:48
Не знаю как в Linux, но в Windows gui-приложение моожет не увидеть, что было записано в файл DOS-приложением, пока DOS-приложение файл не закроет.

Автор: raks123 18.6.2012, 09:13
Цитата(math64 @ 18.6.2012,  07:48)
Не знаю как в Linux, но в Windows gui-приложение моожет не увидеть, что было записано в файл DOS-приложением, пока DOS-приложение файл не закроет.

Хм, может все дело в том, что в первый раз файл еще надо создать? Я просто проверку делаю на наличие файла и все. У меня в разных потоках файлы записываются, а в основном все прекрасно читает, причем сразу после записи

Автор: math64 18.6.2012, 10:13
В моём случае файл нужного размера создавался заранее. DOS-программа работала с железкой и записывала принятые от неё данные в кольцевой буфер в файле.
Программа для Windows считывала этот файл, на месте новых данных считывала старые.
Вероятно, данные не сразу записываются на диск, о попадают к кеш, который отдельный для Windows и DOS программ.
Но сейчас это не актуально - в Viste и более новых версиях Windows многие DOS-программы вообще не запускаются, для моего случая нужно писать драйвер железки.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)