2014-10-10 4 views
-3

Я не понимаю ошибку:ошибок несовместимые типы TStringList и Tarray

function StrSplit(input: string): TArray<string>; 
var 
delimiterSet: array [0 .. 0] of char; 
begin 
delimiterSet[0] := '&'; // some character 
result := input.Split(delimiterSet); 
end; 

использовано выше, таким образом:

lst :=TstringList.Create; 
lst := StrSplit (richedit1.Text); 

Ошибка несовместим типа TStringList и Tarray.

+0

Я подозреваю, что они пытаются присвоить результат этой функции переменной TStringList. –

+0

Фактически это фактическая функция, которую я использую следующим образом: lst: = TstringList.Create; lst: = StrSplit (richedit1.Text); PS пропустил вышеприведенный комментарий, который соответствует строковому списку :-) – Sardukar

+3

Используйте 'lst.AddStrings (StrSplit (re.Text)); вместо этого. –

ответ

3

Согласно вашим комментариям, код проблемы - это код вызова. Вы пишете:

lst := StrSplit(...); 

где lst является TStringList. И это не компилируется по той причине, что компилятор вам сказал. Массив не присваивается TStringList.

Вместо этого используйте метод AddStrings:

lst.AddStrings(StrSplit(...)); 

И за то, что он стоит, функция StrSplit не требуется. Вы можете написать

lst.AddStrings(richedit1.Text.Split(['&'])); 
+0

'DelimitedText' с разделителем '&' в строковом списке также может работать. –

+0

может lst.AddStrings (richedit1.Text.Split (['&'])); будет использоваться с несколькими разделителями? – Sardukar

+0

Да. Просто добавьте их в конструктор открытого массива. –

Смежные вопросы