2013-02-22 55 views
1

今天早些時候我問了一個問題,並從llbrink得到了一個非常快速的答案。在我花了幾個小時試圖找到答案之前,我真的應該問這個問題。從字符串中去除多餘的內邊距

所以 - 這裏有另一個問題,我從來沒有找到答案(雖然我已經創建了一個似乎非常cludgy變通)。

我的AHK程序要求用戶輸入登錄名。程序然後將登錄名與文件中現有的名稱列表進行比較。

文件中的登錄名可能包含空格,但在名稱的開頭沒有空格。當用戶輸入名字時,他可以在開頭包含空格。這意味着,當我的程序比較名稱與文件中的名稱時,它找不到匹配項(因爲有多餘的空格)。

我想找到從輸入開始剝離空格的方法。

我的工作就是將輸入字符串拆分成一個數組(它忽略前導空格),然後使用數組的第一個元素。這是我的代碼:

name := DoStrip(name) 

DoStrip(xyz) ; strip leading and trailing spaces from string 
{ 
    StringSplit, out, xyz, `,, %A_Space% 
    Return out1 
} 

這似乎是一個很費力的方式來做到這一點 - 有沒有更好的辦法?

回答

3

如果您的示例適用於所有情況,我看不到您的示例有問題。

有一種簡單得多的方法;只需使用Autotrim即可。

AutoTrim, On ; not required it is on by default 
my_variable = %my_variable% 

還有many其他differentwaysto trim字符串中的AutoHotkey, 你可以組合成有用的東西。

+0

謝謝阿明。我仔細觀察了「修剪」,「剝離」等 - 但從未發現自動修剪。這只是工作。 – jandrew 2013-02-22 20:55:19

+0

@Armin,我剛剛添加了一個快速示例,可以爲將來的訪問者節省一筆旅費。 – FakeRainBrigand 2013-02-23 18:53:47

+0

@FakeRainBrigand您忘了添加AutoTrim,On。編輯時請準確。 – 2013-02-23 18:55:55

1

您還可以使用#LTrim#RTrim刪除字符串開頭和結尾的空格。

+0

我認爲這是爲了去除'延續部分'中字符串開頭的空格 - 通常是刪除Gui文本塊中的縮進。我不能讓它在單個變量上工作。 – jandrew 2013-02-23 11:27:38