Поиск:

Ответ в темуСоздание новой темы Создание опроса
> работа с файлами, проблема с созданием файла 
:(
    Опции темы
инокентий
Дата 22.11.2005, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 22.11.2005

Репутация: нет
Всего: нет



Доброго всем дня. я здесь новенький. Поэтому переду сразу к делу.
Я пишу прожку на Visual C++ , что-то вроде графического векторного редактора, сохранение данных производится различными способами. Один из способов (самый простой) сохранение всех данных, свойств у объектов в текстовый файл, на чем я собственно и застрял. С самим алгоритмом сохранения все нормально, проблема заключается в следующем: если объекты вставлены в поле редактирования через буфер, то выходной файл создается; если объекты вставлены в поле редактирования нормальным способом через стандартный диалог открытия файлов, то выходной файл не создается. При трассировке кода отвечающего за создание выходного файла, среда разработки ошибок не обнаруживает. Все объекты хранятся в виде двухсвязного списка, при создании файла я пользуюсь функцией fopen().
Кто-нибудь скажите где собака зарыта или хотя бы где ее искать? Заранее спасибо.
PM MAIL   Вверх
Dreamer_0x01
Дата 22.11.2005, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Терминатор
**


Профиль
Группа: Участник
Сообщений: 780
Регистрация: 14.4.2005
Где: Санкт-Петербург

Репутация: 9
Всего: 12



Если работаешь с MFC, то гораздо удобнее пользоваться MFC-классом CFile и его методами.
Почитай, там ничего сложного нет.

Если будет сложно - давай попробуем простеньий пример написать, обращайся.


--------------------
Нет ничего невозможного. Есть цели, и есть время и силы на их достижение.
PM ICQ   Вверх
инокентий
Дата 22.11.2005, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 22.11.2005

Репутация: нет
Всего: нет



Благодарю, вроде заработало.
Еще один вопрос: мне нужно получить дирректорию в которой находится моя установленная программа, чтобы извлеч из этой дирректории необходимый мне файл, как это можно сделать?
Я пробую через реестр, но не получается вызвать функцию GetProfileStringA() класса CWinApp и та ли это вообще функция? И вообще на правильном ли я пути? Если не сложно прошу привести
пример: кусок кода!

PM MAIL   Вверх
AlexPro
Дата 22.11.2005, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 9.11.2005
Где: Санкт-Петербург

Репутация: 3
Всего: 4



Попробуй GetCommandLine()
PM MAIL   Вверх
Dreamer_0x01
Дата 23.11.2005, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Терминатор
**


Профиль
Группа: Участник
Сообщений: 780
Регистрация: 14.4.2005
Где: Санкт-Петербург

Репутация: 9
Всего: 12



char buf[300];
GetCurrentDirectory(250,buf);

buf будет содержать текущий путь. (По дефолту - тот путь, где находится exe-файл твоей программы).



--------------------
Нет ничего невозможного. Есть цели, и есть время и силы на их достижение.
PM ICQ   Вверх
AlexPro
Дата 23.11.2005, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 9.11.2005
Где: Санкт-Петербург

Репутация: 3
Всего: 4



Цитата(Dreamer_0x01 @ 23.11.2005, 15:56)
GetCurrentDirectory(250,buf);
Этот способ хорош, если не меняется текущий каталог.

PM MAIL   Вверх
Neitron
Дата 23.11.2005, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 580
Регистрация: 3.10.2005
Где: Москва

Репутация: нет
Всего: 5



GetCommandLine()
или
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR pstr, int)
MessageBox(NULL, pstr[0], "",MB_OK);


Это сообщение отредактировал(а) Neitron - 23.11.2005, 18:22


--------------------
Хороший программист никогда ничего не делает хорошо с первого раза. Он понимает важность патчей.
Ⓘ ⓁⒾⓀⒺ ⓂⓄⓏⒾⓁⓁⒶ
PM MAIL   Вверх
инокентий
Дата 24.11.2005, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 22.11.2005

Репутация: нет
Всего: нет



Спасибо Neitron, GetCommandLine() работает. Ответьте: кто-нибудь знает формат файла *.DXF?
PM MAIL   Вверх
Earnest
Дата 24.11.2005, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Имя exe-файла можно еще узнать с помощью GetModuleFileName, первый аргумент = 0.
Для вопросов по DXF создавай новую тему (см. правила).


--------------------
...
PM   Вверх
инокентий
Дата 25.11.2005, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 22.11.2005

Репутация: нет
Всего: нет



Всем привет.
Тогда конкретный вопрос по *.DXF : как я говорил ренее я пишу нечто подобное векторному графическому редактору, чтобы сохранить фигуры в dxf файл необходимо сохранить все данные этой фигуры в секции графические примитивы. Я сделал все нужные мне фигуры кроме ПОЛИГОНА. По неизвестной мне причине в AutoCad'е возникает ошибка при открытии полигона у которого много вершин (точнее при открытии заливки такого многовершинного полигона HATCH), все работает нормально если количество вершин заливки HATCH не превышает примерно 20-30. Я пробовал сохранять из AutoCad'а заливку(HATCH) отдельно(в отдельные файлы) в случае когда много вершин (проблемы начинаются при количестве где-то в районе 150-200) и в случае когда мало вершин, потом сравнивал сохраненный код обоих выходных файлов: разница в значении цветов и в количестве переменных содержащих значения координат вершин. Также я проверил содержание других секций, но пока не нашел сильных различий. Как сделать так чтобы этот капризный (мать его) AutoCad загружал мой полагоны (точнее заливку полигона, сам контур полигона сохраняется и открывается без проблем)?

Если кто знает, пожалуйста напишите, а то на меня уже начальство начинает наехжать!!!
PM MAIL   Вверх
Dreamer_0x01
Дата 25.11.2005, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Терминатор
**


Профиль
Группа: Участник
Сообщений: 780
Регистрация: 14.4.2005
Где: Санкт-Петербург

Репутация: 9
Всего: 12



smile

Цитата
Если кто знает, пожалуйста напишите, а то на меня уже начальство начинает наехжать!!!


Вот если будешь игнорировать правила форума и явно сделанные замечания, то тут тоже наедут.

Данный раздел называется " Visual C++/MFC/WTL".
А тема - "работа с файлами, проблема с созданием файла".



а вот это почему проигнорировал?
Цитата(Earnest @ 24.11.2005, 20:46)
Для вопросов по DXF создавай новую тему (см. правила).




--------------------
Нет ничего невозможного. Есть цели, и есть время и силы на их достижение.
PM ICQ   Вверх
Гость_Ghost
Дата 28.11.2005, 12:46 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Кто знает какой функцией скопировать запущенный exe файл smile
  Вверх
инокентий
Дата 29.11.2005, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 22.11.2005

Репутация: нет
Всего: нет



Приношу свои извинения, просто торопился!
Тему создам. Я не думал что с этим здесь так строго.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0504 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.