Đến nội dung


Hình ảnh
- - - - -

[Đã xong] - Lisp theo dõi sự thay đổi biến hệ thống trong quá trình vẽ


  • Please log in to reply
5 replies to this topic

#1 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 07 March 2012 - 03:05 AM

Đôi khi ta cần biết những biến hệ thống nào đã bị thay đổi trong và sau khi thực hiện 1 lệnh nào đó trong quá trình vẽ. Việc lấy ra danh sách giá trị của tất cả biến hệ thống trước và sau khi thực hiện lệnh rồi so sánh thực sự vất vả mà kết quả không được đây đủ chi tiết nếu bạn lấy không đủ danh sách biến.
Lisp này có tác dụng theo dõi và thống kê cho bạn biết những biến hệ thống nào của cad đã bị thay đổi khi thực hiện 1 lệnh cad, 1 lệnh lisp hay bất kỳ lệnh nào gây ra sự thay đổi biến hệ thống, đồng thời ghi ra luôn giá trị trước và sau khi thay đổi là bao nhiêu để bạn nắm được sự thay đổi đó.
;;;Copyright 2012 Thaistreetz from Cadviet.com
(defun C:RSV nil
(if (vlr-reactors :VLR-SysVar-Reactor)
(and (vlr-remove-all :VLR-SysVar-Reactor)
(prompt "<< Da Tat che do theo doi bien he thong >>"))
(and (vlr-sysvar-reactor "Sysvar Reactor: Sysvar Change" '((:vlr-sysvarwillchange . callback-sysvarchang) (:vlr-sysvarchanged . callback-sysvarchang)))
(prompt "<< Da Bat che do theo doi bien he thong >>"))) (princ))
(defun callback-sysvarchang (reactor sysvar)
(if (= (vlr-current-reaction-name) :vlr-sysvarwillchange)
(setq *sysvar* (getvar (car sysvar)))
(if (not (equal *sysvar* (getvar (car sysvar))))
(progn (princ (strcat "\n" (car sysvar) " : <" )) (princ *sysvar*) (princ ">") (princ " ----> <" ) (princ (getvar (car sysvar))) (princ ">")))))
Lưu ý: Hiện tại lisp này không nhận biết được sự thay đổi biến hệ thống qua việc thay đổi các lựa chọn trong hộp thoại Option của cad nhé. Mình dùng cad 2010 nó không nhận. các bản Cad khác thì mình chưa thử. Còn với command hay các lệnh lisp hoặc lệnh tạo bằng các ngôn ngữ khác nó nhận biết bình thường.
Bạn có thể bật hoặc tắt chế độ theo dõi bằng 1 lệnh duy nhất là RSV (reactor Sysvar)

Có thể cũng bạn quan tâm: Lisp so sánh sự khác nhau giữa các biến hệ thống của 2 bản vẽ
  • 9

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD


#2 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 07 March 2012 - 10:08 AM

Tôi cũng có 1 cái, không hay bằng của tác giả Thaistreetz. Không biết cad2010 thì sao nhưng check trên cad2007 thì nó có thể cho biết các biến thay đổi cả khi dùng Option.
Cách dùng:
Lệnh HA1: cho trạng thái trước
Lệnh HA2: cho trạng thái sau.
Kết quả xuất ra trên màn hình các biến hệ thống có thay đổi.
Tặng các bạn nào cần thì dùng.

;Chu y: mot so System Variables co thay doi nhung khong can quan tam, nhu: "CDATE" "DATE" "LASTPROMPT" "TDINDWG" "TDUSRTIMER" "UNDOCTL"...
;Tra ve: List of Value of System Variables co thay doi, o 2 trang thai truoc va sau.
;----- Dung o trang thai truoc.
(defun C:HA1()
(setq lst1 nil)
(foreach var lstvar
(if (getvar var) (setq lst1 (cons (cons var (getvar var)) lst1))))
(setq lst1 (reverse lst1))
(princ))
;----- Dung o trang thai sau.
(defun C:HA2( / lst2 i)
(foreach var lstvar
(if (getvar var) (setq lst2 (cons (cons var (getvar var)) lst2))))
(setq lst2 (reverse lst2))
(setq i 0)
(print (list "SYSTEM_VARIABLE" "OLD_VALUE" "NEW_VALUE"))
(repeat (length lst1)
(if (not (equal (nth i lst1) (nth i lst2)))
(print (list (car (nth i lst1)) (cdr (nth i lst1)) (cdr (nth i lst2)))))
(setq i (1+ i)))
(setq lst1 nil)
(princ))
;----- System Variables of Cad2007.
(setq lstvar (list
"3DDWFPREC"
"ACADLSPASDOC"
"ACADPREFIX"
"ACADVER"
"ACISOUTVER"
"ADCSTATE"
"AFLAGS"
"ANGBASE"
"ANGDIR"
"APBOX"
"APERTURE"
"APSTATE"
"AREA"
"ASSISTSTATE"
"ATTDIA"
"ATTMODE"
"ATTREQ"
"AUDITCTL"
"AUNITS"
"AUPREC"
"AUTOSNAP"
"BACKGROUNDPLOT"
"BACKZ"
"BACTIONCOLOR"
"BDEPENDENCYHIGHLIGHT"
"BGRIPOBJCOLOR"
"BGRIPOBJSIZE"
"BINDTYPE"
"BLIPMODE"
"BLOCKEDITLOCK"
"BLOCKEDITOR"
"BPARAMETERCOLOR"
"BPARAMETERFONT"
"BPARAMETERSIZE"
"BTMARKDISPLAY"
"BVMODE"
"CALCINPUT"
"CAMERADISPLAY"
"CAMERAHEIGHT"
"CDATE"
"CECOLOR"
"CELTSCALE"
"CELTYPE"
"CELWEIGHT"
"CENTERMT"
"CHAMFERA"
"CHAMFERB"
"CHAMFERC"
"CHAMFERD"
"CHAMMODE"
"CIRCLERAD"
"CLAYER"
"CLEANSCREENSTATE"
"CLISTATE"
"CMATERIAL"
"CMDACTIVE"
"CMDDIA"
"CMDECHO"
"CMDINPUTHISTORYMAX"
"CMDNAMES"
"CMLJUST"
"CMLSCALE"
"CMLSTYLE"
"COMPASS"
"COORDS"
"CPLOTSTYLE"
"CPROFILE"
"CROSSINGAREACOLOR"
"CSHADOW"
"CTAB"
"CTABLESTYLE"
"CURSORSIZE"
"CVPORT"
"DASHBOARDSTATE"
"DATE"
"DBCSTATE"
"DBLCLKEDIT"
"DBMOD"
"DCTCUST"
"DCTMAIN"
"DEFAULTLIGHTING"
"DEFAULTLIGHTINGTYPE"
"DEFLPLSTYLE"
"DEFPLSTYLE"
"DELOBJ"
"DEMANDLOAD"
"DIASTAT"
"DIMADEC"
"DIMALT"
"DIMALTD"
"DIMALTF"
"DIMALTRND"
"DIMALTTD"
"DIMALTTZ"
"DIMALTU"
"DIMALTZ"
"DIMAPOST"
"DIMARCSYM"
"DIMASO"
"DIMASSOC"
"DIMASZ"
"DIMATFIT"
"DIMAUNIT"
"DIMAZIN"
"DIMBLK"
"DIMBLK1"
"DIMBLK2"
"DIMCEN"
"DIMCLRD"
"DIMCLRE"
"DIMCLRT"
"DIMDEC"
"DIMDLE"
"DIMDLI"
"DIMDSEP"
"DIMEXE"
"DIMEXO"
"DIMFIT"
"DIMFRAC"
"DIMFXL"
"DIMFXLON"
"DIMGAP"
"DIMJOGANG"
"DIMJUST"
"DIMLDRBLK"
"DIMLFAC"
"DIMLIM"
"DIMLTYPE"
"DIMLTEX1"
"DIMLTEX2"
"DIMLUNIT"
"DIMLWD"
"DIMLWE"
"DIMPOST"
"DIMRND"
"DIMSAH"
"DIMSCALE"
"DIMSD1"
"DIMSD2"
"DIMSE1"
"DIMSE2"
"DIMSHO"
"DIMSOXD"
"DIMSTYLE"
"DIMTAD"
"DIMTDEC"
"DIMTFAC"
"DIMTFILL"
"DIMTFILLCLR"
"DIMTIH"
"DIMTIX"
"DIMTM"
"DIMTMOVE"
"DIMTOFL"
"DIMTOH"
"DIMTOL"
"DIMTOLJ"
"DIMTP"
"DIMTSZ"
"DIMTVP"
"DIMTXSTY"
"DIMTXT"
"DIMTZIN"
"DIMUNIT"
"DIMUPT"
"DIMZIN"
"DISPSILH"
"DISTANCE"
"DONUTID"
"DONUTOD"
"DRAGMODE"
"DRAGP1"
"DRAGP2"
"DRAGVS"
"DRAWORDERCTL"
"DRSTATE"
"DTEXTED"
"DWFFRAME"
"DWFOSNAP"
"DWGCHECK"
"DWGCODEPAGE"
"DWGNAME"
"DWGPREFIX"
"DWGTITLED"
"DYNDIGRIP"
"DYNDIVIS"
"DYNMODE"
"DYNPICOORDS"
"DYNPIFORMAT"
"DYNPIVIS"
"DYNPROMPT"
"DYNTOOLTIPS"
"EDGEMODE"
"ELEVATION"
"ENTERPRISEMENU"
"ERRNO"
"ERSTATE"
"EXPERT"
"EXPLMODE"
"EXTMAX"
"EXTMIN"
"EXTNAMES"
"FACETRATIO"
"FACETRES"
"FIELDDISPLAY"
"FIELDEVAL"
"FILEDIA"
"FILLETRAD"
"FILLMODE"
"FONTALT"
"FONTMAP"
"FRONTZ"
"FULLOPEN"
"FULLPLOTPATH"
"GRIDDISPLAY"
"GRIDMAJOR"
"GRIDMODE"
"GRIDUNIT"
"GRIPBLOCK"
"GRIPCOLOR"
"GRIPDYNCOLOR"
"GRIPHOT"
"GRIPHOVER"
"GRIPOBJLIMIT"
"GRIPS"
"GRIPSIZE"
"GRIPTIPS"
"GTAUTO"
"GTDEFAULT"
"GTLOCATION"
"HALOGAP"
"HANDLES"
"HIDEPRECISION"
"HIDETEXT"
"HIGHLIGHT"
"HPANG"
"HPASSOC"
"HPBOUND"
"HPDOUBLE"
"HPDRAWORDER"
"HPGAPTOL"
"HPINHERIT"
"HPNAME"
"HPOBJWARNING"
"HPORIGIN"
"HPORIGINMODE"
"HPSCALE"
"HPSEPARATE"
"HPSPACE"
"HYPERLINKBASE"
"IMAGEHLT"
"IMPLIEDFACE"
"INDEXCTL"
"INETLOCATION"
"INPUTHISTORYMODE"
"INSBASE"
"INSNAME"
"INSUNITS"
"INSUNITSDEFSOURCE"
"INSUNITSDEFTARGET"
"INTELLIGENTUPDATE"
"INTERFERECOLOR"
"INTERFEREOBJVS"
"INTERFEREVPVS"
"INTERSECTIONCOLOR"
"INTERSECTIONDISPLAY"
"ISAVEBAK"
"ISAVEPERCENT"
"LASTANGLE"
"LASTPOINT"
"LASTPROMPT"
"LATITUDE"
"LAYERFILTERALERT"
"LAYOUTREGENCTL"
"LEGACYCTRLPICK"
"LENSLENGTH"
"LIGHTGLYPHDISPLAY"
"LIGHTLISTSTATE"
"LIMCHECK"
"LIMMAX"
"LIMMIN"
"LISPINIT"
"LOCALE"
"LOCALROOTPREFIX"
"LOCKUI"
"LOFTANG1"
"LOFTANG2"
"LOFTMAG1"
"LOFTMAG2"
"LOFTNORMALS"
"LOFTPARAM"
"LOGFILEMODE"
"LOGFILENAME"
"LOGFILEPATH"
"LOGINNAME"
"LONGITUDE"
"LTSCALE"
"LUNITS"
"LUPREC"
"LWDEFAULT"
"LWDISPLAY"
"LWUNITS"
"ISOLINES"
"MATSTATE"
"MAXACTVP"
"MAXSORT"
"MBUTTONPAN"
"MEASUREINIT"
"MEASUREMENT"
"MENUCTL"
"MENUECHO"
"MENUNAME"
"MIRRTEXT"
"MODEMACRO"
"MSMSTATE"
"MSOLESCALE"
"MTEXTED"
"MTEXTFIXED"
"MTJIGSTRING"
"MYDOCUMENTSPREFIX"
"NOMUTT"
"NORTHDIRECTION"
"OBSCUREDCOLOR"
"OBSCUREDLTYPE"
"OFFSETDIST"
"OFFSETGAPTYPE"
"OLEFRAME"
"OLEHIDE"
"OLEQUALITY"
"OLESTARTUP"
"OPMSTATE"
"ORTHOMODE"
"OSMODE"
"OSNAPCOORD"
"OSNAPHATCH"
"OSNAPZ"
"OSOPTIONS"
"PALETTEOPAQUE"
"PAPERUPDATE"
"PDMODE"
"PDSIZE"
"PEDITACCEPT"
"PELLIPSE"
"PERIMETER"
"PERSPECTIVE"
"PFACEVMAX"
"PICKADD"
"PICKAUTO"
"PICKBOX"
"PICKDRAG"
"PICKFIRST"
"PICKSTYLE"
"PLATFORM"
"PLINEGEN"
"PLINETYPE"
"PLINEWID"
"PLOTOFFSET"
"PLOTROTMODE"
"PLQUIET"
"POLARADDANG"
"POLARANG"
"POLARDIST"
"POLARMODE"
"POLYSIDES"
"POPUPS"
"PREVIEWEFFECT"
"PREVIEWFILTER"
"PRODUCT"
"PROGRAM"
"PROJECTNAME"
"PROJMODE"
"PROXYGRAPHICS"
"PROXYNOTICE"
"PROXYSHOW"
"PROXYWEBSEARCH"
"PSLTSCALE"
"PSOLHEIGHT"
"PSOLWIDTH"
"PSTYLEMODE"
"PSTYLEPOLICY"
"PSVPSCALE"
"PUBLISHALLSHEETS"
"PUCSBASE"
"QCSTATE"
"QTEXTMODE"
"RASTERDPI"
"RASTERPREVIEW"
"RECOVERYMODE"
"REFEDITNAME"
"REGENMODE"
"RE-INIT"
"REMEMBERFOLDERS"
"RENDERPREFSSTATE"
"REPORTERROR"
"ROAMABLEROOTPREFIX"
"RTDISPLAY"
"SAVEFILE"
"SAVEFILEPATH"
"SAVENAME"
"SAVETIME"
"SCREENBOXES"
"SCREENMODE"
"SCREENSIZE"
"SDI"
"SELECTIONAREA"
"SELECTIONAREAOPACITY"
"SELECTIONPREVIEW"
"SHADEDGE"
"SHADEDIF"
"SHADOWPLANELOCATION"
"SHORTCUTMENU"
"SHOWHIST"
"SHOWLAYERUSAGE"
"SHPNAME"
"SIGWARN"
"SKETCHINC"
"SKPOLY"
"SNAPANG"
"SNAPBASE"
"SNAPISOPAIR"
"SNAPMODE"
"SNAPSTYL"
"SNAPTYPE"
"SNAPUNIT"
"SOLIDCHECK"
"SOLIDHIST"
"SPLFRAME"
"SPLINESEGS"
"SPLINETYPE"
"SSFOUND"
"SSLOCATE"
"SSMAUTOOPEN"
"SSMPOLLTIME"
"SSMSHEETSTATUS"
"SSMSTATE"
"STANDARDSVIOLATION"
"STARTUP"
"STEPSIZE"
"STEPSPERSEC"
"SUNPROPERTIESSTATE"
"SUNSTATUS"
"SURFTAB1"
"SURFTAB2"
"SURFU"
"SURFTYPE"
"SURFV"
"SYSCODEPAGE"
"TABLEINDICATOR"
"TABMODE"
"TARGET"
"TBCUSTOMIZE"
"TDCREATE"
"TDINDWG"
"TDUCREATE"
"TDUPDATE"
"TDUSRTIMER"
"TDUUPDATE"
"TEMPOVERRIDES"
"TEMPPREFIX"
"TEXTEVAL"
"TEXTFILL"
"TEXTQLTY"
"TEXTSIZE"
"TEXTSTYLE"
"THICKNESS"
"TILEMODE"
"TIMEZONE"
"TOOLTIPMERGE"
"TOOLTIPS"
"TPSTATE"
"TRACEWID"
"TRACKPATH"
"TRAYICONS"
"TRAYNOTIFY"
"TRAYTIMEOUT"
"TREEDEPTH"
"TREEMAX"
"TRIMMODE"
"TSPACEFAC"
"TSPACETYPE"
"TSTACKALIGN"
"TSTACKSIZE"
"UCSAXISANG"
"UCSBASE"
"UCSDETECT"
"UCSFOLLOW"
"UCSICON"
"UCSNAME"
"UCSORG"
"UCSORTHO"
"UCSVIEW"
"UCSVP"
"UCSXDIR"
"UCSYDIR"
"UNDOCTL"
"UNDOMARKS"
"UNITMODE"
"UPDATETHUMBNAIL"
"USERI1-5"
"USERR1-5"
"USERS1-5"
"VIEWCTR"
"VIEWDIR"
"VIEWMODE"
"VIEWSIZE"
"VIEWTWIST"
"VISRETAIN"
"VPMAXIMIZEDSTATE"
"VSBACKGROUNDS"
"VSEDGECOLOR"
"VSEDGEJITTER"
"VSEDGEOVERHANG"
"VSEDGES"
"VSEDGESMOOTH"
"VSFACECOLORMODE"
"VSFACEHIGHLIGHT"
"VSFACEOPACITY"
"VSFACESTYLE"
"VSHALOGAP"
"VSHIDEPRECISION"
"VSINTERSECTIONCOLOR"
"VSINTERSECTIONEDGES"
"VSINTERSECTIONLTYPE"
"VSISOONTOP"
"VSLIGHTINGQUALITY"
"VSMATERIALMODE"
"VSMAX"
"VSMIN"
"VSMONOCOLOR"
"VSOBSCUREDCOLOR"
"VSOBSCUREDEDGES"
"VSOBSCUREDLTYPE"
"VSSHADOWS"
"VSSILHEDGES"
"VSSILHWIDTH"
"VSSTATE"
"VTDURATION"
"VTENABLE"
"VTFPS"
"WHIPARC"
"WHIPTHREAD"
"WINDOWAREACOLOR"
"WMFBKGND"
"WMFFOREGND"
"WORLDUCS"
"WORLDVIEW"
"WRITESTAT"
"WSCURRENT"
"XCLIPFRAME"
"XEDIT"
"XFADECTL"
"XLOADCTL"
"XLOADPATH"
"XREFCTL"
"XREFNOTIFY"
"XREFTYPE"
"ZOOMFACTOR"
"ZOOMWHEEL"))

  • 4

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#3 LoveLisp

LoveLisp

    biết lệnh extend

  • Members
  • PipPipPip
  • 195 Bài viết
Điểm đánh giá: 20 (tàm tạm)

Đã gửi 07 March 2012 - 10:35 AM

- AutoCAD theo dõi và lưu trữ rất chi tiết các hoạt động của người dùng, phần lớn là lưu vào các biến hệ thống. Đơn giản như việc cuộn bánh xe trên chuột để zoom thì nó làm cho biến VIEWSIZE và VIEWCTR thay đổi.
- Nhiều tùy chọn của lệnh cũng làm thay đổi biến hệ thống, ví dụ việc bật chế độ kéo giãn các cạnh trong lệnh Extend, làm cho biến EDGEMODE thay đổi.
- Có một số biến như CDATE, DATE, TDINDWG, TDUSRTIMER (chỉ thời gian) thường xuyên thay đổi dù bạn không làm gì cả.

Mình không biết (vlr-reactors :VLR-SysVar-Reactor) có thể theo dõi được những biến gì, nhưng chắc chắn một số biến đã không được theo dõi bạn ạ!
  • 0

#4 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5678 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 07 March 2012 - 10:37 AM

Ketxu nhìn qua thấy có biến Blipmode, sẽ có rắc rối với CAD đời sau này ^^
  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#5 Detailing

Detailing

    biết lệnh imageclip

  • Members
  • PipPipPipPipPipPipPip
  • 667 Bài viết
Điểm đánh giá: 278 (khá)

Đã gửi 07 March 2012 - 10:59 AM

Góp 1 cái bằng .NET (trích trong .NET dev guide)

[CommandMethod("AddAppEvent")]
public void AddAppEvent()
{
Application.SystemVariableChanged +=
new Autodesk.AutoCAD.ApplicationServices.
SystemVariableChangedEventHandler(appSysVarChanged);
}
[CommandMethod("RemoveAppEvent")]
public void RemoveAppEvent()
{
Application.SystemVariableChanged -=
new Autodesk.AutoCAD.ApplicationServices.
SystemVariableChangedEventHandler(appSysVarChanged);
}
public void appSysVarChanged(object senderObj,
Autodesk.AutoCAD.ApplicationServices.
SystemVariableChangedEventArgs sysVarChEvtArgs)
{
object oVal = Application.GetSystemVariable(sysVarChEvtArgs.Name);
// Display a message box with the system variable name and the new value
Application.ShowAlertDialog(sysVarChEvtArgs.Name + " was changed." +
"\nNew value: " + oVal.ToString());
}

netload file này vào http://www.mediafire...tqvxbslpmrtbtsf
gồm 2 lệnh:
AddAppEvent : bật chế độ theo dõi system variables
RemoveAppEvent : tắt chế độ theo dõi system variables
  • 3

Ideas don't matter, execution does!

1908412_308002392716743_8165279281236341


#6 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 07 March 2012 - 11:51 AM

- AutoCAD theo dõi và lưu trữ rất chi tiết các hoạt động của người dùng, phần lớn là lưu vào các biến hệ thống. Đơn giản như việc cuộn bánh xe trên chuột để zoom thì nó làm cho biến VIEWSIZE và VIEWCTR thay đổi.
- Nhiều tùy chọn của lệnh cũng làm thay đổi biến hệ thống, ví dụ việc bật chế độ kéo giãn các cạnh trong lệnh Extend, làm cho biến EDGEMODE thay đổi.
- Có một số biến như CDATE, DATE, TDINDWG, TDUSRTIMER (chỉ thời gian) thường xuyên thay đổi dù bạn không làm gì cả.

Mình không biết (vlr-reactors :VLR-SysVar-Reactor) có thể theo dõi được những biến gì, nhưng chắc chắn một số biến đã không được theo dõi bạn ạ!

Tất nhiên bạn không thể thay đổi các biến hệ thống Chỉ cho phép đọc (Read-Only)
Vlr-SysVar-Reactor chỉ theo dõi các biến hệ thống mà người dùng có thể được phép tùy biến. dễ dàng nhận ra điều này mà bạn, đây là nguyên tắc bắt buộc để đảm bảo cad hoạt đông trơn tru và không bị treo do lỗi cố ý của người dùng.

Lưu ý các bạn. Lisp mình post bên trên có thể thông báo sự thay đổi của biến hệ thống tại bất kỳ thời điểm nào biến hệ thống bị thay đổi. Nó có thể thông báo sự thay đổi ngay cả khi lệnh của bạn đang trong quá trình thực hiện. Điều này rất quan trọng để dùng cho mục đích tham khảo.
Với cách làm của bác Hà thì ta chỉ biết được sự thay đổi giữa 2 thời điểm: trước và sau khi thực hiện xong 1 lệnh. còn lệnh đó đã tác động đến những biến nào thì chịu
  • 1

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD