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

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


Информационный Канал Subscribe.Ru


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

Выпуск № 314
от 25.07.2003, 16:30

Администратор:
Имя: Nick.Box
URL: Информационный ресурс
ICQ: 365124
[censored], [censored]
О рассылке:
Задано вопросов: 957
Отправлено ответов: 2151
Активность: 224.7 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Avl2k
Статус: Профессиональный
Общий рейтинг: 124.32
[Подробней >>]
Yuri Gordienko
Статус: Профессиональный
Общий рейтинг: 117.53
[Подробней >>]
RedFox
Статус: Начальный
Общий рейтинг: 112.12
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 950. Привет! Пожалуйста, помогите. См. Приложение. Даю ему кушать файл bmp(InputPath) размером 8 * 14 пол... (ответов: 1)
Вопрос № 951. Доброго времени суток, многоуважаемые эксперты. У меня к вам просьба - вот ... (ответов: 1)
Вопрос № 952. Создал временный файл FILE *tempfp; tempfp = tmpfile(); Загнал во временный файл необходимое мне сод... (ответов: 2)

Вопросов: 3, ответов: 4


 Вопрос № 950

Привет!
Пожалуйста, помогите.
См. Приложение.
Даю ему кушать файл bmp(InputPath) размером 8 * 14 полностью залитый красным. Соответственно когда делаю проверку функцией OutFile, Я ожидаю, что у меня будет в бинарно 0FFFFh, 0h, 0h (RGB), при выходе в файл. На самом деле выходит, что-то другое (см. снова приложение) в начале и в конце 1h, 1h, 1h. А должно по-моему 0FFFFh, 0h, 0h.
Помогите исправить ошибку, Сижу уже несколько дней, что я делаю не правильно, хоть убей, не вижу.
С уважением alexneta.


Приложение:


Вопрос отправлен: 21.07.2003, 20:32
Отправитель: alexneta

[Следующий вопрос >>] [Список вопросов]

Отвечает Avl2k

Здравствуйте, alexneta!
Ошибок несколько:
1. Когда работаете с двоичными файлами через потоки, не забывайте указывать при открытии файла флажок ios::binary, иначе все последовательности '\r\n' у Вас заменяются на '\n' и наоборот.
...
ifstream FileBMP(InputPath.c_str(),ios::in|ios::binary);
...
ofstream TmpFile("TestMatrix.txt", ios::out | ios::binary);
2. У Вас есть некоторая путаница с константами ROW и COL - иногда Вы их используете как максимальный индекс строки и столбца, а иногда - как количество строк и столбцов. Так что определитесь :)
...
struct Matrix
{
char Blue;
char Green;
char Red;
}Matrix[ROW][COL]; // должно быть ROW + 1, COL +
1?
Если здесь не исправить, то обращаться в цикле к элементу Matrix[ROW][COL] нельзя.
...
FileBMP.read((char *)&m_Matrix,COL * ROW * 3); // должно быть (COL+1)*(ROW+1)*3?
C уважением, Avl2k.


Ответ отправлен: 22.07.2003, 11:15
Отправитель: Avl2k


 Вопрос № 951

Доброго времени суток, многоуважаемые эксперты.
У меня к вам просьба - вот здесь лежит моя програмка. Состоит она из двух частей:
1. Сервис WinNT. Слушает определенный порт. В случае прихода туда условной фразы, стирает определенные файлы с жесткого диска (старается сделать это так, чтоб невозможно было восстановить). При чем перед этим вырубает приложения и сервисы, которые могут занимать эти файлы.
2. Приложение (тоже под WinNT). Слушает клаву на предмет нажатия определенной комбинации клавиш. При нажатии посылает указанным компьютерам условную фразу в определенный порт. Так же служит для настройки файлов/каталогов, которые будут удаляться.
Так вот, теперь сама просьба - покритикуйте, плз. Что нужно исправить (и желательно, как это исправить). Что вообще не верно. Ну и т.д... В рассылку просьба не отвечать, пишите на мыло.
P.S.: программа полностью работает.
P.P.S.: для хранения данных используется библиотека SQLite, описание можно найти на sqlite.org.



Вопрос отправлен: 22.07.2003, 11:58
Отправитель: Gibbel (Gibbel@narod.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Yuri Gordienko

Добрый день, Gibbel!
Да я, вроде, в бета-тестеры не нанимался. Вопросы где?
Успехов в стирании файлов

Ответ отправлен: 22.07.2003, 12:06
Отправитель: Yuri Gordienko


 Вопрос № 952

Создал временный файл
FILE *tempfp;
tempfp = tmpfile();
Загнал во временный файл необходимое мне содержимое.
Как сохранить временный файл на диске? И подскажите, пожалуйста, литературу, где можно об этом почитать.
С уважением Lerich



Вопрос отправлен: 22.07.2003, 16:22
Отправитель: Lerich

[Следующий вопрос >>] [Список вопросов]

Отвечает RedFox

Добрый день, Lerich!
Согласно описанию стандартной библиотеки С, временный файл удаляется после нормального завершения программы. Так что естественнный в такой ситуации вариант сохранить данные на диске, это открыть обычный файл записать туда данные и закрыть его. Тем более, местоположение временного файла (оперативная память, жесткий диск) завист от конкретной реализации стандартно библиотеки С. Наиболее часто встречаемый вариант, это когда такие временные файлы создаются во специальном каталоге дисковой файловой системы (например, /var/tmp для некоторых реализаций Unix и т.д.), а затем по завершении программы удаляются оттуда. Как вариант могу предложить использование системного вызова
char tempnam(const char dir, const char *pfx), возвращающего имя временного файла а затем, использовать стандартные вызовы для открытия/записи/закрытия файла; такой файл не будет удаляться по завершении программы.
Насчет литературы - точно не посоветую, но подойдет любой справочник с описанием стандартных библиотек С.

Приложение:

Ответ отправлен: 22.07.2003, 17:09
Отправитель: RedFox


Отвечает Avl2k

Доброе время суток, Lerich!
У Вас есть два пути. 1) Создаете файл с нужным Вам именем на диске и перегоняете в него все содержимое из временного с помощью функций fread/fwrite. 2) Используете вместо tmpfile функцию tmpnam (если не очень нужна переносимость, то можете использовать _tempnam и _mktemp), которая не создает временный файл, а возвращает уникальное имя для него. Создаете временный файл (fopen), заполняете его (fwrite+fclose), а затем переименовываете (rename).
Если есть MSDN, то там эти функции достаточно подробно описаны.
С уважением, Avl2k.

Ответ отправлен: 22.07.2003, 17:15
Отправитель: Avl2k



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


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


Получить ответов:


 Выбор рассылки

Программисту
Assembler (33)
C / C++ (23)
Perl (4)
Builder / Delphi (20)
Pascal (22)
Basic / VBA (11)
Java / JavaScript (11)
PHP (8)
Криптография (8)
WinAPI (12)
Пользователю
Windows 95/98/Me (46)
Windows NT/2000/XP (41)
"Железо" (35)
Поиск информации (24)
Администратору
Windows NT/2000/XP (23)
Linux / Unix (9)
Юристу
Гражданское право (11)
Семейное право (6)
Трудовое право (9)
КоАП (5)

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




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


Яндекс цитирования
© 2001-2003 Россия, Москва. Авторское право: Калашников О.А.

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное