创建了一个 AHK 计算器 GUI,当您选择复制时,它将复制所有信息以进行粘贴。我想编辑脚本以不复制该部分(如果该部分为空白)。 GUI 设置为 3 个级别,但有时我只使用 1 或 2 个级别,并且使用当前脚本,我必须在粘贴后删除空文本。我只想复制填写的级别。下面是 GUI 复制部分的代码。还附上了我使用当前脚本(左侧记事本)粘贴时当前的外观以及我希望它看起来的样子(右侧记事本)的照片示例。任何帮助将不胜感激。谢谢。
Copy:
CopyQC =
(
QC Level 1:
Result: %Result1%
Lab Range: %LRange1%
Peer Mean: %PeerMean1%
Peer SD: %PeerSD1%
Peer Range: %1Low% - %1High%
Result SDs: %Result1SD%
QC Level 2:
Result: %Result2%
Lab Range: %LRange2%
Peer Mean: %PeerMean2%
Peer SD: %PeerSD2%
Peer Range: %2Low% - %2High%
Result SDs: %Result2SD%
QC Level 3:
Result: %Result3%
Lab Range: %LRange3%
Peer Mean: %PeerMean3%
Peer SD: %PeerSD3%
Peer Range: %3Low% - %3High%
Result SDs: %Result3SD%
)
Gui, 6: Add, Edit, vCopy, %CopyQC%
Gui, 6: Show
Send, ^c
Gui, 6: Destroy
return
不了解 IF 语句或者这是否是这里的最佳方案。
此处,注释添加在带有 ; 的行尾。解释:
CopyQC
初始化为空字符串。IF statements
,每个检查Result#
是否不为空。Result#
不为空,则将结果连接到 CopyQC
变量。StringTrimRight
删除最后一个新行。CopyQC := "" ; Init CopyQC
If (Result1) ; IF Result1 NOT Empty
{
CopyQC .=
(LTrim
"QC Level 1:
Result: " Result1 "
Lab Range: " LRange1 "
Peer Mean: " PeerMean1 "
Peer SD: " PeerSD1 "
Peer Range: " 1Low " - " 1High "
Result SDs: " Result1SD "
"
) ; Concatenate QC1 To CopyQC
}
If (Result2) ; IF Result2 NOT Empty
{
CopyQC .=
(LTrim
"QC Level 2:
Result: " Result2 "
Lab Range: " LRange2 "
Peer Mean: " PeerMean2 "
Peer SD: " PeerSD2 "
Peer Range: " 2Low " - " 2High "
Result SDs: " Result2SD "
"
) ; Concatenate QC2 To CopyQC
}
If (Result3) ; IF Result3 NOT Empty
{
CopyQC .=
(LTrim
"QC Level 3:
Result: " Result3 "
Lab Range: " LRange3 "
Peer Mean: " PeerMean3 "
Peer SD: " PeerSD3 "
Peer Range: " 3Low " - " 3High "
Result SDs: " Result3SD "
"
) ; Concatenate QC3 To CopyQC
}
StringTrimRight, CopyQC, CopyQC, 1 ; Remove Last New Line