⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qget_string.pro

📁 basic median filter simulation
💻 PRO
字号:
FUNCTION qget_string, dummy;+; NAME:;     QGET_STRING; PURPOSE:;     To get a string from the keyboard without echoing it to the screen.;; CALLING SEQUENCE:;     string = QGET_STRING() ;; INPUTS:;     None.;; OUTPUTS:;     string   The string read from the keyboard.;; SIDE EFFECTS:;     A string variable is created and filled.;; PROCEDURE:;     The IDL GET_KBRD functions is used to get each character in;     the string.  Each character is added to the string until a;     carriage return is struck.  The carriage return is not appended;     to the string.  Striking the delete key or the backspace key;     removes the previous character from the string.;; NOTES:;     For a widget password procedure see ;     http://www.dfanning.com/tip_examples/password.pro; MODIFICATION HISTORY:;     Written by Michael R. Greason, STX, 8 January 1991.;     Work for Mac and Windows IDL  W. Landsman    September 1995;     Converted to IDL V5.0   W. Landsman   September 1997;-;                       Variable definitions.; st = bytarr(1)                                 ; String variable. n = 0 IF !VERSION.OS_FAMILY EQ "unix" THEN dun = 10B $       ; Unix version of CR.                           ELSE dun = 13B       ; All other version of CR.wt = 1                                          ; Wait for key to be struck?del = 127B & bs = 8B                            ; Delete, backspace keys.;;                       Loop, gathering characters into the string until;                       a carriage return has been struck.;REPEAT BEGIN;;                               Get next character.;        ch = byte(get_kbrd(wt))        ch = ch[0];;                               If it isn't a carriage return, process it.;        IF (ch NE dun) THEN BEGIN;;                                       If it isn't a delete or backspace,;                                       append it to the string.;                IF ((ch NE del) AND (ch NE bs)) THEN BEGIN                        IF (n LE 0) THEN BEGIN                                st[0] = ch                                n = 1                        ENDIF ELSE BEGIN                                st = [st, ch]                                n = n + 1                        ENDELSE                ENDIF ELSE BEGIN;;                                       It's a delete/backspace.  Remove the;                                       previous character.;                        IF (n GT 0) THEN BEGIN                                n = n - 1                                IF (n GT 0) THEN st = st[0:(n-1)]                        ENDIF                ENDELSE        ENDIF;ENDREP UNTIL (ch EQ dun);;                       Finished.;IF (n LE 0) THEN st = '' ELSE st = string(st)RETURN, stEND

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -