Реклама i
Стань нашим партнером - зарабатывай с нами!
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > как организовать создание и сохранение файлов с необходимыми расшириениями?

как организовать создание и сохранение файлов с необходимыми расшириениями?

Ответ
Поиск в этой теме
Непрочитано 01.08.2011, 15:28 #1
как организовать создание и сохранение файлов с необходимыми расшириениями?
mamuk
 
Сургут
Регистрация: 06.05.2010
Сообщений: 248

Доброго времени всем!
(сразу скажу я не пытаюсь сделать уневерсальный конвертор, он будет ориентирован на наши типы линий, блоки, и т.д.)
я пытаюсь сделать конвертор для экспорта содержимого dwg файла в формат mid/mif! как бы сделать это будет не сложно. но вижу я только один вариант сохранения файлов через "getfiled" и каждый раз запрашивать на сохранения файла сначала одного расширения, а потом друго, это будет не есть гуд! как можно организовать создание и сохранение файлов без вызова окна указания пути сохранения файла (например можно будет сохранять в ту папку в ктоторый файл dwg) или вообще бы было идеально если можно было вызвать окно "Обзор папок" и указавав папку туда все записать файлы mid/mif. Т.е. как организовать сохранение файлов двух расширений с указанием пути сохрания один раз или безуказания пути?
Просмотров: 4173
 
Непрочитано 01.08.2011, 15:42
1 | #2
TararykovDG

Программист-энтузиаст
 
Регистрация: 17.07.2009
Воронеж
Сообщений: 571


Цитата:
Сообщение от mamuk Посмотреть сообщение
или вообще бы было идеально если можно было вызвать окно "Обзор папок" и указавав папку туда все записать файлы mid/mif.
Выбор папки
__________________
cadtools
TararykovDG вне форума  
 
Автор темы   Непрочитано 01.08.2011, 16:06
#3
mamuk


 
Регистрация: 06.05.2010
Сургут
Сообщений: 248


спасибо! у меня еще один вопрос остался как создавать файлы в указанной директории без диалога Getfiled? подскажите пожалуста!
mamuk вне форума  
 
Непрочитано 01.08.2011, 16:35
1 | #4
TararykovDG

Программист-энтузиаст
 
Регистрация: 17.07.2009
Воронеж
Сообщений: 571


Например так:
Код:
[Выделить все]
 
; Примеры вызова: 
;     (create-file "111" "mid")
;     (create-file (substr (getvar 'dwgname) 1 (vl-string-search "." (getvar 'dwgname))) "mid")
(defun create-file(file_name file_ext /)
  ((lambda(path_folder)
     (if path_folder
       ((lambda(file)
          (write-line "первая запись" file)
          (close file)
          )
         (open (strcat path_folder file_name "." file_ext) "W")
         )
       )
     )
    (Directory-Dia "Укажите папку: ")
    )
  ); end create-file
Функцию Directory-Dia берем из ссылки в посте #2
__________________
cadtools
TararykovDG вне форума  
 
Непрочитано 01.08.2011, 20:00
1 | #5
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от TararykovDG Посмотреть сообщение
Например так:
Ох, вы и и накрутили... 2 ненужные лямбды и ни одного обработчика ошибок
gomer вне форума  
 
Непрочитано 02.08.2011, 06:50
2 | #6
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381


Цитата:
Ох, вы и и накрутили... 2 ненужные лямбды и ни одного обработчика ошибок
"Горе от ума" называется.

Создать текстовый файл и записать в него строки очень просто. Причем лучше сначала создать список строк, а потом уже одним приемом записать в файл. Запись списка строк в файл оформить библиотечной функцией, которую потом тышу раз можно применять.

"Например так" (С) TararykovDG:

Код:
[Выделить все]
 (defun ru-list-write-to-file (filename stringlist / f result)
  (if (setq f (open filename "w"))
    (progn
      (foreach x stringlist (princ (strcat x "\n") f))
      (close f)
      (setq result filename)
    )
    (princ (strcat "\nНе могу создать файл \n" filename))
  )
  result
)
Здесь именно функция, которая возвратит результат в виде имени файла в случае удачной записи или NIL при сбое.
filename - полное имя файла, а stringlist - список строк, которые надо записать.

Полное имя файла, естественно, формируется какой-то другой функцией.

Конечно, при желании сделать понепонятней можно и лямбды прикрутить.
ShaggyDoc вне форума  
 
Автор темы   Непрочитано 02.08.2011, 15:01
#7
mamuk


 
Регистрация: 06.05.2010
Сургут
Сообщений: 248


Спасибо за ответы!!! я как то и не обратил внимание что, сама функция open создает файлы!! и уцепился за getfiled думал что можно только через нее сохранить т.е. создать файл!! буду внимательнее читать и тестировать!! еще раз спасибо всем!! и извиняюсь, надо было включать мозги а несразу постить!!
mamuk вне форума  
 
Непрочитано 02.08.2011, 17:37
#8
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


getfiled вообще ничего не создает... по определению... только позволяет выбрать файл для открытия или сохранения
в НОРМАЛЬНЫХ программах путь к каталогу, куда производить запись или откуда производить чтение прописывается ручками, для особо ленивых делают кнопочку с тремя точечками вызывающую функцию из #2 или getfiled
в данном случае лучше сделать небольшой диалог

Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
имя файла, естественно, формируется какой-то другой функцией
Код:
[Выделить все]
 (defun export (/ dcl_id dcl_rt df)
  (vl-load-com)

  (defun mids_clk ()
    (set_tile "mid"
	      (setq df (getfiled "Select a MID File"
				 (getvar "MYDOCUMENTSPREFIX")
				 "MID"
				 1
		       )
	      )
    )
    (set_tile "mip"
	      (strcat (vl-filename-directory df)
		      (chr 92)
		      (vl-filename-base df)
		      ".mip"
	      )
    )
  )

  (defun mips_clk ()
    (set_tile "mip"
	      (setq df (getfiled "Select a MIP File"
				 (getvar "MYDOCUMENTSPREFIX")
				 "MIP"
				 1
		       )
	      )
    )
  )

  (setq dcl_id (load_dialog "export.dcl"))
  (new_dialog "export" dcl_id)

  (action_tile
    "mids"
    (vl-prin1-to-string
      (quote
	(progn (set_tile "mid"
			 (setq df (getfiled "Select a MID File"
					    (getvar "MYDOCUMENTSPREFIX")
					    "MID"
					    1
				  )
			 )
	       )
	       (set_tile "mip"
			 (strcat (vl-filename-directory df)
				 (chr 92)
				 (vl-filename-base df)
				 ".mip"
			 )
	       )
	)
      )
    )
  )
  (action_tile
    "mips"
    (vl-prin1-to-string
      (quote (progn (strcat (vl-filename-directory df)
			    (chr 92)
			    (vl-filename-base df)
			    ".mip"
		    )
	     )
      )
    )
  )
  (action_tile
    "accept"
    (vl-prin1-to-string
      (quote (progn (setq dcl_rt
			   (list
			     (get_tile "mid")
			     (get_tile "mip")
			   )
		    )
		    (done_dialog 1)
	     )
      )
    )
  )
  (action_tile "cancel" "(done_dialog 0)")

  (start_dialog)

  (unload_dialog dcl_id)

  dcl_rt
)
Код:
[Выделить все]
export : dialog {
  label = "Export to MAP";
  :row {
    : edit_box { edit_width = 60;key = "mid"; label = "MID File: ";mnemonic = "D";}
    : retirement_button {key = "mids";label = "...";}
  }
   :row {
    : edit_box {edit_width = 60;key = "mip"; label = "MIP File: ";mnemonic = "P";}
    : retirement_button {key = "mips";label = "...";}
  }
  ok_cancel;
}
ну, самый примитивный вариант...
gomer вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > как организовать создание и сохранение файлов с необходимыми расшириениями?

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сохранение файлов Шмидт AutoCAD 6 23.12.2009 23:42
Создание файлов DJVU Builder_mag Разное 17 28.03.2009 00:45
Создание скрипта для пакетной чистки файлов Grinzaid Программирование 10 18.04.2008 08:37
Создание дубликатов DXF файлов. Dark Программирование 2 26.04.2007 22:35