Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
NSIS-从字符串中删除前导空格和尾随空格_Nsis - Fatal编程技术网

NSIS-从字符串中删除前导空格和尾随空格

NSIS-从字符串中删除前导空格和尾随空格,nsis,Nsis,我想修剪NSIS中的文本框值,因为我使用了下面的链接 我的解决方案的问题是,上面的例子删除了整个文本,然后说例子我的文本是这样的“名字”。当我调用trim方法时,它会删除整个名称本身,并将结果作为“First”。但我只想删除前导和尾随空格。而不是中间的空间 我如何才能做到这一点?适合我: Function Trim Exch $R1 ; Original string Push $R2 Loop: StrCpy $R2 "$R1" 1 StrCmp "$R2"

我想修剪NSIS中的文本框值,因为我使用了下面的链接

我的解决方案的问题是,上面的例子删除了整个文本,然后说例子我的文本是这样的“名字”。当我调用trim方法时,它会删除整个名称本身,并将结果作为“First”。但我只想删除前导和尾随空格。而不是中间的空间

我如何才能做到这一点?

适合我:

Function Trim
    Exch $R1 ; Original string
    Push $R2
Loop:
    StrCpy $R2 "$R1" 1
    StrCmp "$R2" " " TrimLeft
    StrCmp "$R2" "$\r" TrimLeft
    StrCmp "$R2" "$\n" TrimLeft
    StrCmp "$R2" "$\t" TrimLeft
    GoTo Loop2
TrimLeft:
    StrCpy $R1 "$R1" "" 1
    Goto Loop
Loop2:
    StrCpy $R2 "$R1" 1 -1
    StrCmp "$R2" " " TrimRight
    StrCmp "$R2" "$\r" TrimRight
    StrCmp "$R2" "$\n" TrimRight
    StrCmp "$R2" "$\t" TrimRight
    GoTo Done
TrimRight:
    StrCpy $R1 "$R1" -1
    Goto Loop2
Done:
    Pop $R2
    Exch $R1
FunctionEnd
!define Trim "!insertmacro Trim"
 !macro Trim ResultVar String
  Push "${String}"
  Call Trim
  Pop "${ResultVar}"
!macroend


Section

${Trim} $0 " First Name "
MessageBox mb_ok "|$0|"

SectionEnd
也许您可以编辑您的问题,以包含失败的示例代码