05.07.2021 09:59    

akcan
GETxx fonksiyonlarında varsayılan (öneri) değeri < ve > işaretleri arsında veriyorum.
Ancak bu öneriyi kabul etmek için entere bastığımda nil olarak aktarılıyor.
Öneri değerini neden aktarmıyor.
Mantıksal sınamayla nil gelirse öneri ile eşle, yapmaktan başka bir yöntem var mı?
Kod:

(defun c:test()
  (setq adi (GETSTRING "Adınız <Mesut>:"))
  (princ adi)
  )

05.07.2021 10:06    

Travaci
Kod:

(if (= ad nil) (setq ad "Mesut"))
(setq ad (getstring (strcat "\nIsim < " ad " >:")))

05.07.2021 10:49    

akcan
Mesajdaki mantıksal sınamadan kastım buydu zaten. Bundan başka bir yöntem var mı?
Kod:

(defun c:test2()
(setq ad (getstring "\nAdınız <Mesut>:"))
(if (= ad "") (setq ad "Mesut")) 
  (princ ad)
  )

05.07.2021 11:43    

ehya
Benim bu tür durumlarda dikkat ettiğim enter ile pas geçildiğinde sonucun ne olduğu......
Getstring pas geçildiğinde sonucu "" veriyor.
Getreal veya getint ise nil sonucunu veriyor.

Bu sonuca göre sizin yazdığınız yoldan gidiyorum.
Getstring'in enter ile sonucu boş bir dize olduğu için if gibi bir komutla sonucu döndürülemiyor.

05.07.2021 12:26    

Travaci
Bundan başka bir yönteme neden ihtiyacınız var ?

05.07.2021 16:30    

akcan
1) mantıken orda yazan şeyin entere basınca değişkene aktarılması gerekir ama değil. garipsedim.
2) bir tane GETxxx kullandığında sorun değil ama çok sayıda GETxx kullanınca hepsinde benzer kodlar yazmak gerekiyor. değeri doğrudan aktarmanın bir yolu var mı diye düşündüm.

05.07.2021 20:41    

Travaci
Bi mantık hatası yok aslında, orada yazan isim ":" dan sonra olmadığı ve mesaj kısmında olduğu için enter a basınca değişkene atamıyor.

06.07.2021 06:30    

ehya
farklı bişi yazmak istersek şunu da deneyebilirsiniz.

Kod:

(if (= (setq isim (getstring "\nİsminizi yazın:")) "")
(setq isim "MESUT")
(setq isim isim))

06.07.2021 12:48    

akcan
Alıntı
Travaci :
Bi mantık hatası yok aslında, orada yazan isim ":" dan sonra olmadığı ve mesaj kısmında olduğu için enter a basınca değişkene atamıyor.


: 'nın konumunun etkisi yok.
Seçili halden kurtarınca değeri aktarıyor. Örneğin Sağ yön tuşuna basıp Entere basıldığında.

> 1 <
Copyright © 2004-2022 SQL: 1.803 saniye - Sorgu: 65 - Ortalama: 0.02774 saniye