Boa tarde,
Eu estou executando uma rotina porém gostaria de saber se há alguma forma de manter as variáveis criadas mesmo com o fechamento do arquivo,é possível?
Abraços,
Variáveis que não se apagam com o fechamento do arquivo
Moderador: Moderadores
-
- Novato
- Mensagens: 1
- Registrado em: Seg 06 Nov 2017 7:52:26 pm
- admin
- Administrador
- Mensagens: 621
- Registrado em: Sex 28 Nov 2003 11:00:00 pm
- Localização: Itu / SP
- Contato:
Re: Variáveis que não se apagam com o fechamento do arquivo
Ola,
Bem, as variáveis são salvas em memória, depois que reiniciar o AutoCAD, por exemplo, as variáveis se perdem.
Uma forma de você fazer isto seria salvar as variáveis em um arquivo externo e depois usar a sua rotina lisp para ler este mesmo arquivo... ou salvar os dados que você precisa dentro do próprio desenho e usar também uma rotina para ler estes dados.
at
Bem, as variáveis são salvas em memória, depois que reiniciar o AutoCAD, por exemplo, as variáveis se perdem.
Uma forma de você fazer isto seria salvar as variáveis em um arquivo externo e depois usar a sua rotina lisp para ler este mesmo arquivo... ou salvar os dados que você precisa dentro do próprio desenho e usar também uma rotina para ler estes dados.
at
Marcos Mendes de Almeida
mmalbr@gmail.com
mmalbr@gmail.com
Re: Variáveis que não se apagam com o fechamento do arquivo
Bom dia!
Sei que já se passaram alguns meses desde a abertura deste tópico, mas acredito que o conhecimento de um meio de "guardar" variáveis entre sessões seja útil e de interesse de outras pessoas mais...
Para que você possa "manter na memória" o valor de uma ou mais variáveis, mesmo depois de fechar tal arquivo e reabrí-lo, você vai precisar criar um dicionário interno. Vejamos um exemplo de aplicação com código comentado:
Segue agora código "limpo":
Espero ter ajudado e que este pequeno exemplo seja útil a mais pessoas.
Sei que já se passaram alguns meses desde a abertura deste tópico, mas acredito que o conhecimento de um meio de "guardar" variáveis entre sessões seja útil e de interesse de outras pessoas mais...
Para que você possa "manter na memória" o valor de uma ou mais variáveis, mesmo depois de fechar tal arquivo e reabrí-lo, você vai precisar criar um dicionário interno. Vejamos um exemplo de aplicação com código comentado:
Código: Selecionar todos
(defun c:exemplo (/)
(vl-load-com)
;;Carrega as funções ActiveX
(if (not
;; Cria uma condicional para a execução do código
(dictsearch (namedobjdict) "MEU DICIONARIO")
)
;; Verifica se o dicionário "MEU DICIONARIO" já existe,
;; executa o código abaixo
(progn
;; Abre um bloco de códigos para ser executado
(setq idade (getint "Qual sua idade?"))
;; Pergunta qual sua idade e memoriza na variável "idade"
;; Somente vai aceitar números inteiros como resposta
(vlax-ldata-put "MEU DICIONARIO" "IDADE" idade)
;; Copia o conteúdo da variável interna "idade" para a
;; chave "IDADE"contida no dicionário "MEU DICIONÁRIO",
;; que é criado automaticamente neste momento
)
;; Fim do bloco de códigos aberto por "PROGN"
(alert (strcat "Você tem "
(vl-princ-to-string
(vlax-ldata-get "MEU DICIONARIO" "IDADE")
)
" anos de idade!"
)
)
;; Caso já o dicionário "MEU DICIONARIO" já esteja criado
;; exibe mensagem com a idade armazenada na chave "IDADE"
)
;; Fim da condicional de execução de código "IF NOT"
)
Código: Selecionar todos
(defun c:exemplo (/)
(vl-load-com)
(if (not
(dictsearch (namedobjdict) "MEU DICIONARIO")
)
(progn
(setq idade (getint "Qual sua idade?"))
(vlax-ldata-put "MEU DICIONARIO" "IDADE" idade)
)
(alert (strcat "Você tem "
(vl-princ-to-string
(vlax-ldata-get "MEU DICIONARIO" "IDADE")
)
" anos de idade!"
)
)
)
)