Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 695
от 29.03.2007, 09:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 471, Экспертов: 69
В номере:Вопросов: 3, Ответов: 4


Вопрос № 79468: ПОЯСНЕНИЯ: Есть ФАЙЛы типизованные, а есть текстовые (например разделитель ;). Работать с файлами можно разными СПОСОБАМИ (классические функции, потоки и т.д.). РАБОТА с файлами состоит из: 1. Объявления (описания) 2. Открытия н...
Вопрос № 79510: Здравствуйте, эксперты! Подскажите, пожалуйста, как в программах для циклов задействовать многоядерность и многопроцессорность. Возможна ли работа с extern переменными, чтением-записью в файл и прочее. Может есть ссылки на русскую докум...
Вопрос № 79526: Добр(-ое, -ый, -ой) <утро, день, вечер, ночи> Расскажите мне, пожалуйста, дорогие эксперты, кое-что об управлении потоками ввода-вывода (iostream.h): как использовать эту систему для организации записи определенной структуры в файл, чт...

Вопрос № 79.468
ПОЯСНЕНИЯ:
Есть ФАЙЛы типизованные, а есть текстовые (например разделитель ;). Работать с файлами можно разными СПОСОБАМИ (классические функции, потоки и т.д.).
РАБОТА с файлами состоит из:

1. Объявления (описания)
2. Открытия на запись
3. Запись в файл
4. Открытия на чтение
5. Чтение в переменную
6. Закрытие
ВОПРОС: Есть массив структурного типа данных вида {double, double, double, bool}. Необходимо организовать РАБОТУ с ФАЙЛАМИ на примере этого массива как можно большим числом СПОСОБОВ.

P.S. MS Visual C++ 6.0. Обращайте внимание на регистр букв. Оценки будут. Слежу за мини-форумом. Вопрос для меня очень важен.
Отправлен: 23.03.2007, 10:11
Вопрос задал: NiGHT (статус: Практикант)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 4)

Отвечает: Хватов Сергей
Здравствуйте, NiGHT!

Ну основных вариантов два - либо писать и читать в символьном виде, либо в двоичном.

Для первого способа лучше использовать iostreams. раз у вас C++, превращаете свою структуру в класс (и вообще про структуры в c++ лучше забыть :-), определяете для неё операторы << и >> (прототипы в приложении. Это не методы а stand-alone операторы), и пользуйтесь ими

Для второго придётся использовать fread() и fwrite() так как iostreams с двоичными данными правильно работать не обязаны.

Крайне не рекомендую использовать двоичный формат - всё будет правильно работать только в пределах одной платформы.

Приложение:

Ответ отправил: Хватов Сергей (статус: Студент)
Ответ отправлен: 23.03.2007, 10:53

Отвечает: Ilkras
Здравствуйте, NiGHT!
вы можете пользоваться любым файловым интерфейсом (_write, write, fwrite, FileWrite, CFile::Write) для бинарной записи (fprinft) для текстовой записи. Вы также можете форматировать данные в промежуточно строке и записывать ее функцией для бинарной записи.
Открывать и закрывыть файл разумеется надо функциями соответствующими используемым функциям записи. Для _write это будут _create, _open, _close, _read.
Чтение файла в переменную - в общем случае это неправильный подход. В С++ вы можете скопировать в объект содержимое файла. Однако в любом случае файл читается в блок памяти. Этот блок может быть создан с помощью конструктора и иметь какую то структуру.

Вообще же, я не очень понял вашу цель. Вы хотите сделать это на С или С++. Вы хотите чтоб это было красиво написано или быстро работало или было переносимо между платформами или содержало минимальное количество строк кода? Поясните пожалуйста.
Ответ отправил: Ilkras (статус: 5-ый класс)
Ответ отправлен: 23.03.2007, 11:28


Вопрос № 79.510
Здравствуйте, эксперты!
Подскажите, пожалуйста, как в программах для циклов задействовать многоядерность и многопроцессорность.
Возможна ли работа с extern переменными, чтением-записью в файл и прочее.
Может есть ссылки на русскую документацию по этому вопросу.
Отправлен: 23.03.2007, 14:02
Вопрос задал: ALEX_T (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: ramok
Здравствуйте, ALEX_T!

Вы можете использовать многопроцессорность только косвенно. ОС решает на каком процессоре что исполнять. В свою очередь вы можете использовать множество процессов и/или threads для распараллеливания работы программы что бы ОС могла запускать их на дополнительных процессорах
Ответ отправил: ramok (статус: Практикант)
Ответ отправлен: 23.03.2007, 15:14


Вопрос № 79.526
Добр(-ое, -ый, -ой) <утро, день, вечер, ночи>

Расскажите мне, пожалуйста, дорогие эксперты, кое-что об управлении потоками ввода-вывода (iostream.h): как использовать эту систему для организации записи определенной структуры в файл, чтение из него, как открыть файл в определенном режиме?
Отправлен: 23.03.2007, 17:06
Вопрос задал: Ferruccio Bonipiero (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Хватов Сергей
Здравствуйте, Ferruccio Bonipiero!

iostream не предназначен для чтения или записи двоичных данных. Вообще, прежде чем решить писать в файл двоичную информацию надо хорошо подумать - даже смена версии компилятора может изменить формат.

Но вы можете определить операторы << и >> записи и чтения ваших структур или классов,
где просто писать и читать все их поля

Ответ отправил: Хватов Сергей (статус: Студент)
Ответ отправлен: 23.03.2007, 17:33


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: support@rusfaq.ru, Тел.: +7 (926) 535-23-31
ООО "Мастер-Эксперт Про", Москва, 2007
Авторские права | Реклама на портале
Версия системы: 4.46 от 18.03.2007
Яндекс Rambler's Top100

В избранное