| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, 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, 10:13 |
| В моём случае файл нужного размера создавался заранее. DOS-программа работала с железкой и записывала принятые от неё данные в кольцевой буфер в файле. Программа для Windows считывала этот файл, на месте новых данных считывала старые. Вероятно, данные не сразу записываются на диск, о попадают к кеш, который отдельный для Windows и DOS программ. Но сейчас это не актуально - в Viste и более новых версиях Windows многие DOS-программы вообще не запускаются, для моего случая нужно писать драйвер железки. |