2011-06-08 46 views
0

我正在Lazarus中构建一个小应用程序,并且需要基于下划线的解析函数。例如:Lazarus - 基于分隔符的解析函数

array := Split(string, delimiter); 

所以string = "this_is_the_first_post"和分隔符导致阵列中的下划线被返回:

array[0] = this 
array[1] = is 
array[2] = the 
array[3] = first 
array[4] = post 

任何人有任何想法如何着手呢?我已经尝试了几个代码示例,它总是会引发错误。

谢谢。

回答

8

您可以使用下面的代码:

var 
    List1: TStringList;  
begin 
    List1 := TStringList.Create;  
    try 
    List1.Delimiter := '_'; 
    List1.DelimitedText := 'this_is_the_first_post'; 

    ShowMessage(List1[0]); 
    ShowMessage(List1[1]); 
    ShowMessage(List1[2]); 
    ShowMessage(List1[3]); 
    ShowMessage(List1[4]); 
    finally 
    List1.Free; 
    end; 
end; 

在这个例子中,输出将显示为一组消息,但你得到的总体思路。

+0

哦,出于某种原因,这已发布双重换行符。如果您将此示例复制并粘贴到您的应用程序中,请确保将其移除以避免任何问题。 – 2011-06-08 14:21:31

+0

谢谢托德,我不能告诉你我一直在为此挣扎多久。 – 2011-06-08 14:32:40

+0

还可以看看TStringlist.strictdelimiter。没有tstringlist将总是在空间上打破。 (和大多数字符在ASCII 32下) – 2011-06-15 19:28:38