帮助与文档
  • SOFiSTiK > 
  • 在线帮助 > 
  • Teddy手册 > 
  • TEEDY宏命令(下)

TEEDY宏命令(下)

调用函数

@FIND() - 查找字符串

说明
查找文本需要查找的文本的字符串,在引号内
选项用逗号隔开: 
G : 忽略大小写
L : 忽略空格
W : 查找整词
C : 从光标处开始查找
K : 循环查找
T : 在整个文本中查找
B : 在被标记的块中查找
R : 反向查找

示例:

menue Such Alt+S
  begin    if @FIND("+prog",cg)
      ...
    endif
  ende

@FRAGE(Text,Titel) - 选择是/否的问题窗口的输出

说明
文本问题文本
标题

信息窗口的标题。返回值: 是或否

示例:

makro Frage Alt+F
  begin    if @FRAGE("Wollen Sie ein DOS-Fenster aktivieren ?","DOS-Fenster") == Ja
      exec cmd /c start "DOS-BOX aus TEDdy" /i
    endif
  ende

@(MODUL) - 插入现有模式(CADINP-输入)

说明
-

在CADINP输入文件插入现有模式的名称:例如 prog aqua -> aqua

示例:

menue aqua_echo
  begin
    rahm cursor
    item "&MAT  ^I-  Materialparameter"
      isub "&JA   ^I-  normale Ausgabe"               edit mat JA
      isub "&NEIN ^I-  nichts ausgeben"               edit mat NEIN
    ...
ende

input ECHO - Steuerung der Ausgabe
  begin
    call @(MODUL)_echo
  ende

@(FILE) - 现文件的文件名

说明
-

插入现有文件的文件名。一个更前的路径被剪掉。例如: c:\daten\test.dat -> test.dat

示例:

makro Save Alt+S Aktuelle Datei auf Diskette kopieren
  begin
    exec copy @(FILE) a:
  ende

@(NAME) - 现文件的不带后缀的文件名

说明
-

插入现有文件的文件名。一个更前的路径被剪掉。例如: c:\daten\test.dat -> test.dat

示例:

makro Save Alt+C Sicherungskopie der aktuellen Datei erstellen
  begin
    exec copy @(FILE) @(NAME).bak
  ende

@(EXT) - 现有文件的扩展名

说明
-

插入现有文件的扩展名。一个更前的路径被剪掉。返回值一直以一个点开始。

例如: c:\daten\test.dat -> .dat

示例:

makro DelBak Alt+B BAK-Dateien löschen
  begin    if @lower(@(EXT)) == .bak
      del *.bak
    endif
  ende

@(PFAD) - 现有文件的路径

说明
-

插入现有文件的路径。文件名和扩展名将被剪掉。例如: c:\daten\test.dat -> C:\daten\

示例:

makro DelTemp Alt+T TEMP-Verzeichnis aufräumen
  begin    if @lower(@(PFAD)) == C:\\TEMP\\
      del *.*
    endif
  ende

@(TEMP) - 暂时的文件名

说明
-

产生一个随机的8个字符的字符串。首字符始终为一个$, 后面跟着7个大写字母。

例如: $AXKDZBM

示例:

makro TempCopy Alt+T Datei temporär kopieren
  begin
    exec copy @(file) @(TEMP)
  ende

@(LAST) - 最后一个产生的暂时文件名的审阅权

说明
-

得到@(TEMP)命令产生的名称。

在调用@(LAST)之前至少一次@(TEMP) 命令已经被调用。在下一次的@(TEMP)调用之后 @(LAST) 将被覆盖。

示例:

makro TempCopy Alt+T Datei temporär kopieren
  begin
    exec copy @(file) @(TEMP)
    ..
    del @(LAST)
  ende

@(TIME) - 附上现在的时间

说明
-

在光标位置插入现在的时间。

返回值: 时间
格式: HH:MM.SS(时,分,秒) 
示例: 12:00.00

示例:

makro Zeit Alt+Z Aktuelle Uhrzeit
  begin
    edit Die derzeitige Uhrzeit: @(TIME)
  ende

@(DATE) - 附上现在的日期

说明
-

在光标位置插入现在的日期。

返回值: 日期 
格式: TT.MM.JJJJ(天,月,年)
示例: 09.07.2007

示例:

makro Datum Alt+D Aktuelles Datum
  begin
    edit Das heutige Datum: @(DATUM)
  ende

@(YEAR) - 附上现在的年份

说明
-

在光标位置插入现在的年份。

返回值: 年份 
格式: JJJJ 
示例: 2007

示例:

makro Jahr Alt+J Aktuelle Jahreszahl
  begin
    edit Wir haben das Jahr: @(YEAR)
  ende

@(MONTH) - 附上现在的月份

说明
-

在光标位置插入现在的月份。

返回值: Monat(月份) 
格式: 文本
示例: Januar

示例:

makro Jahr Alt+M Aktueller Monat
  begin
    edit Der derzeitige Monat ist: @(MONTH)
  ende

@UPPER() - 改写为大写字母

说明
-

把给出的文本转化为大写字母。例如: @UPPER(Hallo Welt) -> HALLO WELT

示例:

makro Gross Alt+G Dateinamen einfügen
  begin
    edit @UPPER(@(file))
  ende

@LOWER() - 改写为小写字母

说明
-

把给出的文本转化为小写字母。例如: @LOWER(Hallo Welt) -> hallo welt

示例:

makro Klein Alt+K Dateinamen einfügen
  begin
    edit @LOWER(@(file))
  ende

@FEXIST(File) - 测试文件是否存在

说明
File

测试带有某"File"文件名的文件是否存在。

返回值:是或否

示例:

makro TedLog Alt+L TEDdy.LOG im aktuellen Verzeichnis
  begin    if @FEXIST(teddy.htm)
      open teddy.htm
    endif
  ende

@FSEARCH(File) - 查找一个文件

说明
文档

在以下的目录查找带有某"File"的文件名: 
1. 调用目录(带有ted.exe的目录) 
2. SOFiSTiK目录(环境变量 SOFISTIK) 
3. 在系统路径上(环境变量 PATH)

返回值: 带有完整路径的文件名

示例:

makro TedLog Alt+L LOG-Datei zu Teddy
  begin
    open @FSEARCH(ted.htm)
  ende

@ENVIRON(Set) - 从环境表格上登记

说明
设置

从环境表格中插入"设置" 登记。返回值: 环境登记\ 例如: @ENVIRON(temp) -> c:\windows\temp

示例:

makro TedLog Alt+L LOG-Datei zu Teddy
  begin    if "@ENVIRON(temp)" <> ""
      edit ~S
      exec copy @(file) @ENVIRON(temp)\@(name).bak
    endif
  ende

@LINE(nr,i,n) - 从现文件中插入一行

说明
nr在现有文件中按照nr插入指定的行。 
nr将会按以下的规则被转译: 
nr = 0 : 在光标处放置行;
nr > 0 : 从文件开头计算行号;
nr < 0 : 从文件末尾计算行号。
ii > 0 : 从i-ten 字符开始 
i < 0 : 从底端的i-ten字符开始
n

n > 0 : 字符的长度

参数i 和 n为可选项。

返回值: 指定行的文本

示例:

makro ErsteZeile Alt+1 Erste Zeile kopieren
  begin
    edit @LINE(1)
  ende

@WORD(nr,i,n) - 从现在的行中插入一个单词

说明
nr在现有行中按照nr插入指定的单词。
nr将会按以下的规则被转译: 
nr = 0 : 在光标处放置单词;
nr > 0 : 从行开头计算单词的号码;
nr < 0 : 从行末尾计算单词的号码;
ii > 0 : 从i-ten 字符开始 
i < 0 : 从底端的i-ten字符开始
n

n > 0 : 字符的长度

n < 0 : 从指定的单词的号码完整字符串的字符将被考虑

参数i 和 n为可选项。

返回值: 现处行中指定的单词的文本。

示例:

makro ErstesWort Alt+1 Erste Wort kopieren
  begin
    edit @WORD(1)
  ende

@CHAR(nr) - 从现在的行中插入一个字符

说明
nr

在现有行中按照nr插入指定的字符。
nr将会按以下的规则被转译: 
nr = 0 : 在光标处放置单词;
nr > 0 : 从行开头计算字符的号码;
nr < 0 : 从行末尾计算字符的号码;

返回值: 现处行的指定位置的字符

示例:

makro ErstesZeich Alt+1 Erstes Zeichen kopieren
  begin
    edit @CHAR(1)
  ende

@LANG(art) - 内置系统-, 输入或输出语言

说明
Art(种类 )

按照Art的不同插入内置语言 
ART = System : Windows-系统语言 
ART = Input : Sofistik-输入语言 
ART = Output : Sofistik-输出语言

返回值: 
0 = 德语 
1 = 英语 (缺省) 
2 = 法语 
3 = 西班牙语

示例:

makro Test Alt+F Test Language
  begin
    ...    if @LANG(system) == 0
      mbox("Falscher Dateiname !","Fehler")
    else
      mbox("Filename is wrong !","Error")
    endif
  ende

全局命令

#DEFINE - 全局定义

解释
Name替换文本(没有空格的单词)。
DefText可以被置入的文本。

这个命令起到一个对于全文全局的查找和替换的作用。从现在的#DEFINE命令开始,确切的带有准确名字的被标记文本将被替换。

示例:

prog teddy#ifdef @lang(system) == 0   $ Deutsch
#DEFINE [Fehler] "Fehler"
#DEFINE [MText] "Falscher Dateiname !"
#endif
#ifdef @lang(system) == 1   $ Englisch
#DEFINE [Fehler] "Error"
#DEFINE [MText] "Wrong filename !"
#endifmakro Test Alt+F Test
  begin
    ...
    mbox([MText],[Fehler])
  ende

#IFDEF - 全局命令分枝

解释
条件

条件是决定后面的条件是否应该被执行的条件。 每一个 #IFDEF命令都必须以#ENDIF命令结束。

可能的比较条件: 
输出1 == 输出2 (检查是否相等) 
输出1 <> 输出2 (检查不等关系)

示例:

prog teddy
#IFDEF @lang(system) == 0   $ Deutsch
#define [Fehler] "Fehler"
#define [MText] "Falscher Dateiname !"
#endif
#IFDEF @lang(system) == 1   $ Englisch
#define [Fehler] "Error"
#define [MText] "Wrong filename !"
#endif
makro Test Alt+F Test
  begin
    ...
    mbox([MText],[Fehler])
  ende

#ENDIF - 结束一个全局命令分枝

解释

一个#IFDEF命令的结束命令

示例:

prog teddy
#ifdef @lang(system) == 0   $ Deutsch
#define [Fehler] "Fehler"
#define [MText] "Falscher Dateiname !"
#ENDIF
#ifdef @lang(system) == 1   $ Englisch
#define [Fehler] "Error"
#define [MText] "Wrong filename !"
#ENDIFmakro Test Alt+F Test
  begin
    ...
    mbox([MText],[Fehler])
  ende

#INCLUDE - 挂载一个文件

解释
名称 

没有路径带后缀的文件名。文件将在相同的路径被查找, 在宏文件中也会被找到。

示例:

prog teddy
#ifdef @lang(system) == 0   $ Deutsch
#INCLUDE deutsch.wtm
#endif
#ifdef @lang(system) == 1   $ Englisch
#INCLUDE english.wtm
#endif


0 个评论

要回答文章请先登录注册