zoukankan      html  css  js  c++  java
  • 【298】◀▶ IDL 系统过程&函数

    参考: Programming and Control


    序号 类名称  

    功能说明

      语法 & 举例
    01 DEFSYSV  

    ====<<<< Description >>>>====

    新建一个系统变量。
    可以跨程序使用,但是前提是所在程序需要“运行”一次才行。
    ----------------------------------------------------------------------------------

    ====<<<< Syntax >>>>====

    DEFSYSV, Name, Value [, Read_Only] [, EXISTS=variable] [, /TEST]

    ----------------------------------------------------------------------------------

    ====<<<< Parameters >>>>====

    ◈  Name:新建系统变量的名称,一般大写并以感叹号开头,例如:!RUNDIR。
    ◈  Value:初始化的值,可以是数字、字符串、数组或结构体。
    ◈  Read_Only:设置非零的话为只读,默认可以修改
    ◈  EXISTS:将此关键字设置为一个变量,此变量返回是否这个名字的系统变量已经存在,1为存在,0为不存在。
    ◈  EXISTS:设置此关键字,仅当此系统变量不存在的时候创建。

       
    IDL> DEFSYSV, '!XYZ', EXISTS = i
    IDL> IF i EQ 1 THEN PRINT, '!XYZ exists' ELSE PRINT, $
    >    '!XYZ does not exist'
    !XYZ does not exist
    
    02 EXECUTE  

    ====<<<< Description >>>>====

    用来执行字符串所表达的可编译的函数。
    ----------------------------------------------------------------------------------

    ====<<<< Syntax >>>>====

    Result = EXECUTE(String [, CompileFlags] [, QuietExecution])
    ----------------------------------------------------------------------------------

    ====<<<< Return Value >>>>====

    如果编译并执行了则返回 1,如果发生错误则返回 0。
    ----------------------------------------------------------------------------------

    ====<<<<  Parameters >>>>====

    ◈  String:表达式。
    ◈  CompileFlags:0、1、2
      0:默认值,正常输出错误,没有赋值给变量的表达式会报错
      1:不输出错误、不输出结果
      2:不输出错误、输出结果
    ◈  QuietExecution:设置此关键字,不输出错误。

     
    IDL> void = execute('a=abs(-5)')
    IDL> print, a
           5
            
    IDL> void = execute('abs(-5)', 2)
           5
    IDL> print, void
           1
    
    03 EXIT  

    ====<<<< Description >>>>====

    退出 IDL。不能取消。
    ----------------------------------------------------------------------------------

    ====<<<< Syntax >>>>====

    EXIT [, /NO_CONFIRM] [, STATUS=code]
    ----------------------------------------------------------------------------------

    ====<<<< Parameters >>>>====

    ◈  NO_CONFIRM:不显示任何确认框,否则会提示“是否保存”。

       
    04 GET_LOGIN_INFO  

    ====<<<< Description >>>>====

    返回运行 IDL 电脑的名称以及用户的登录名。
    ----------------------------------------------------------------------------------

    ====<<<< Syntax >>>>====

    Result = GET_LOGIN_INFO()
    ----------------------------------------------------------------------------------

    ====<<<<  Return Value >>>>====

    返回一个匿名结构体,包括 MACHINE_NAME 和 USER_NAME。

     
    IDL> get_login_info()
    {
        MACHINE_NAME: "JGZX-BNLI-B1",
        USER_NAME: "McDelfino"
    }
    
    05 HELP  

    ====<<<< Description >>>>====

    提供帮助信息。
    ----------------------------------------------------------------------------------

    ====<<<< Syntax >>>>====

    HELP, Expression1, ..., Expressionn, /BREAKPOINTS, /BRIEF, /DEVICE, /DLM, /FILES, /FULL, /FUNCTIONS, /HEAP_VARIABLES, /KEYS, /LAMBDA, /LAST_MESSAGE, LEVEL=value, /MEMORY, /MESSAGES, NAMES=string_of_variable_names, /OBJECTS, OUTPUT=variable, /PATH_CACHE, /PREFERENCES, /PROCEDURES, /RECALL_COMMANDS, /ROUTINES, /SHARED_MEMORY, /SOURCE_FILES, /STRUCTURES, /SYSTEM_VARIABLES, /TRACEBACK

    ----------------------------------------------------------------------------------

    ====<<<< Parameters >>>>====

    ◈  Expression:不选择关键字的情况下提供基本信息。
    ◈  STRUCTURE:更好的显示结构的内容。

     
    IDL> a = 2
    IDL> b = 'a'
    IDL> help, a, b
    A               INT       =        2
    B               STRING    = 'a'
    IDL> help, get_login_info(), /structure
    ** Structure <cf77d80>, 2 tags, length=32, data length=32, refs=1:
       MACHINE_NAME    STRING    'JGZX-BNLI-B1'
       USER_NAME       STRING    'McDelfino'
    
    06 TAG_NAMES  

    ====<<<< Description >>>>====

    返回结构体成员名字的字符串数组。
    ----------------------------------------------------------------------------------

    ====<<<< Syntax >>>>====

    Result = TAG_NAMES( Expression [, /STRUCTURE_NAME] )

    ----------------------------------------------------------------------------------

    ====<<<< Return Value >>>>====

    返回结构体成员名称或者结构体的名称。
    ----------------------------------------------------------------------------------

    ====<<<<  Parameters >>>>====

    ◈  Expression:结构体。
    ◈  STRUCTURE_NAME:设置此关键字,返回结构体名称,对于匿名结构体而言返回值为空。

     
    IDL> s1 = {a:1, b:INDGEN(5), c:'hello'}
    IDL> PRINT, TAG_NAMES(s1)
    A B C
    IDL> PRINT, TAG_NAMES(s1, /structure_name)
    
    IDL> print, tag_names(get_login_info())
    MACHINE_NAME USER_NAME
    IDL> s2 = {s2name, a:1, b:INDGEN(5), c:'hello'}
    IDL> PRINT, TAG_NAMES(s2, /structure_name)
    S2NAME
    
    07 ROUTINE_FILEPATH  

    ====<<<< Description >>>>====

    返回当前正在编译的过程或函数的完整路径。
    ----------------------------------------------------------------------------------

    ====<<<< Syntax >>>>====

    Result = ROUTINE_FILEPATH( [Routine] [, /EITHER] [, /IS_FUNCTION] )

    ----------------------------------------------------------------------------------

    ====<<<< Return Value >>>>====

    返回程序所在完整路径的字符串或字符串数组。
    ----------------------------------------------------------------------------------

    ====<<<<  Parameters >>>>====

    ◈  Routine:程序名称,如果设置为函数的话,需要指定IS_FUNCTION or EITHER keyword。不赋值的话,返回当前程序的路径。
    ◈  EITHER:过程和函数的路径均获取。
    ◈  IS_FUNCTION:只搜索函数,不搜索过程。

     
    ;获取当前程序的路径
    PRINT, FILE_DIRNAME(ROUTINE_FILEPATH())
    ;获取当前工作空间的路径
    CD, current=c
    PRINT, c
    
    -------          
  • 相关阅读:
    Linux之文件处理命令
    Linux基础命令
    rip实验
    Linux基础之磁盘分区
    mysql安装
    centos Apache、php、mysql默认安装路径
    You probably tried to upload too large file. Please refer to documentation for ways to workaround this limit.
    Wrong permissions on configuration file, should not be world writable!
    机器会学习么 学习总结
    实验 5 Spark SQL 编程初级实践
  • 原文地址:https://www.cnblogs.com/alex-bn-lee/p/8378258.html
Copyright © 2011-2022 走看看