Это создает функцию, называет ее и отбрасывает ее.
могло бы быть более ясно, смотрите ли Вы на него как это:
var throwaway = function(){
// do cool stuff
};
throwaway();
Это сделано для создания частного пространства имен. Код в функции может иметь функции и переменные, не вызывая беспокойство о конфликте с другим кодом, загруженным на странице.
Вы должны установить s1.StrictDelimiter: = True
, чтобы пробелы не считались разделителями, подробнее здесь .
Поскольку вы работаете в версия, которая не поддерживает вышеперечисленное (как выяснилось после отправки ответа), у вас есть два варианта:
'hello hello ^ bye bye'
превращается в '"hello hello" ^ "bye bye"'
. Если вы выбрали этот путь, и он работает для вас, примите ответ Александра, а не мой, он также предоставляет код для его реализации. Оба обходных пути, не использующие StrictDelimiter
, имеют ограничения: первый требует некоторых неиспользуемый символ, а второй не требует кавычек и пробелов в исходном тексте.
Может пора перейти на более новую версию Delphi :)
sl.DelimitedText := '"' + StringReplace(S, sl.Delimiter, '"' + sl.Delimiter + '"', [rfReplaceAll]) + '"';