![]() |
|
|
![]()
|
|
| инокентий |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 22.11.2005 Репутация: нет Всего: нет |
Доброго всем дня. я здесь новенький. Поэтому переду сразу к делу.
Я пишу прожку на Visual C++ , что-то вроде графического векторного редактора, сохранение данных производится различными способами. Один из способов (самый простой) сохранение всех данных, свойств у объектов в текстовый файл, на чем я собственно и застрял. С самим алгоритмом сохранения все нормально, проблема заключается в следующем: если объекты вставлены в поле редактирования через буфер, то выходной файл создается; если объекты вставлены в поле редактирования нормальным способом через стандартный диалог открытия файлов, то выходной файл не создается. При трассировке кода отвечающего за создание выходного файла, среда разработки ошибок не обнаруживает. Все объекты хранятся в виде двухсвязного списка, при создании файла я пользуюсь функцией fopen(). Кто-нибудь скажите где собака зарыта или хотя бы где ее искать? Заранее спасибо. |
|||
|
||||
| Dreamer_0x01 |
|
|||
![]() Терминатор ![]() ![]() Профиль Группа: Участник Сообщений: 780 Регистрация: 14.4.2005 Где: Санкт-Петербург Репутация: 9 Всего: 12 |
Если работаешь с MFC, то гораздо удобнее пользоваться MFC-классом CFile и его методами.
Почитай, там ничего сложного нет. Если будет сложно - давай попробуем простеньий пример написать, обращайся. -------------------- Нет ничего невозможного. Есть цели, и есть время и силы на их достижение. |
|||
|
||||
| инокентий |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 22.11.2005 Репутация: нет Всего: нет |
Благодарю, вроде заработало.
Еще один вопрос: мне нужно получить дирректорию в которой находится моя установленная программа, чтобы извлеч из этой дирректории необходимый мне файл, как это можно сделать? Я пробую через реестр, но не получается вызвать функцию GetProfileStringA() класса CWinApp и та ли это вообще функция? И вообще на правильном ли я пути? Если не сложно прошу привести пример: кусок кода! |
|||
|
||||
| AlexPro |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 9.11.2005 Где: Санкт-Петербург Репутация: 3 Всего: 4 |
Попробуй GetCommandLine()
|
|||
|
||||
| Dreamer_0x01 |
|
|||
![]() Терминатор ![]() ![]() Профиль Группа: Участник Сообщений: 780 Регистрация: 14.4.2005 Где: Санкт-Петербург Репутация: 9 Всего: 12 |
char buf[300];
GetCurrentDirectory(250,buf); buf будет содержать текущий путь. (По дефолту - тот путь, где находится exe-файл твоей программы). -------------------- Нет ничего невозможного. Есть цели, и есть время и силы на их достижение. |
|||
|
||||
| AlexPro |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 9.11.2005 Где: Санкт-Петербург Репутация: 3 Всего: 4 |
|
|||
|
||||
| Neitron |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 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 -------------------- Хороший программист никогда ничего не делает хорошо с первого раза. Он понимает важность патчей. Ⓘ ⓁⒾⓀⒺ ⓂⓄⓏⒾⓁⓁⒶ |
|||
|
||||
| инокентий |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 22.11.2005 Репутация: нет Всего: нет |
Спасибо Neitron, GetCommandLine() работает. Ответьте: кто-нибудь знает формат файла *.DXF?
|
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Имя exe-файла можно еще узнать с помощью GetModuleFileName, первый аргумент = 0.
Для вопросов по DXF создавай новую тему (см. правила). -------------------- ... |
|||
|
||||
| инокентий |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 22.11.2005 Репутация: нет Всего: нет |
Всем привет.
Тогда конкретный вопрос по *.DXF : как я говорил ренее я пишу нечто подобное векторному графическому редактору, чтобы сохранить фигуры в dxf файл необходимо сохранить все данные этой фигуры в секции графические примитивы. Я сделал все нужные мне фигуры кроме ПОЛИГОНА. По неизвестной мне причине в AutoCad'е возникает ошибка при открытии полигона у которого много вершин (точнее при открытии заливки такого многовершинного полигона HATCH), все работает нормально если количество вершин заливки HATCH не превышает примерно 20-30. Я пробовал сохранять из AutoCad'а заливку(HATCH) отдельно(в отдельные файлы) в случае когда много вершин (проблемы начинаются при количестве где-то в районе 150-200) и в случае когда мало вершин, потом сравнивал сохраненный код обоих выходных файлов: разница в значении цветов и в количестве переменных содержащих значения координат вершин. Также я проверил содержание других секций, но пока не нашел сильных различий. Как сделать так чтобы этот капризный (мать его) AutoCad загружал мой полагоны (точнее заливку полигона, сам контур полигона сохраняется и открывается без проблем)? Если кто знает, пожалуйста напишите, а то на меня уже начальство начинает наехжать!!! |
|||
|
||||
| Dreamer_0x01 |
|
||||
![]() Терминатор ![]() ![]() Профиль Группа: Участник Сообщений: 780 Регистрация: 14.4.2005 Где: Санкт-Петербург Репутация: 9 Всего: 12 |
Вот если будешь игнорировать правила форума и явно сделанные замечания, то тут тоже наедут. Данный раздел называется " Visual C++/MFC/WTL". А тема - "работа с файлами, проблема с созданием файла". а вот это почему проигнорировал?
-------------------- Нет ничего невозможного. Есть цели, и есть время и силы на их достижение. |
||||
|
|||||
| Гость_Ghost |
|
|||
|
Unregistered |
Кто знает какой функцией скопировать запущенный exe файл
|
|||
|
||||
| инокентий |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 22.11.2005 Репутация: нет Всего: нет |
Приношу свои извинения, просто торопился!
Тему создам. Я не думал что с этим здесь так строго. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |