Форум: "Основная";
Текущий архив: 2004.02.29;
Скачать: [xml.tar.bz2];
ВнизStringList Найти похожие ветки
← →
Edik86 (2004-02-16 19:35) [0]Нижепреведенным кодом я хочу получить следующее
1 11
222
333
procedure TForm1.Button1Click(Sender: TObject);
var
StringList:TStringList;
begin
StringList:=TStringList.Create;
StringList.Delimiter:=";";
StringList.DelimitedText:="1 11;222;333;";
Memo1.Lines.Assign(StringList);
end;
а получается вот что:
1
11
222
333
← →
_Dima_ (2004-02-16 19:37) [1]т.е. почему-то пробел тоже становится разделителем.
← →
Rouse_ (2004-02-16 20:19) [2]Потомучто, если посмотреть в Classes.pas и найти
procedure TStrings.SetDelimitedText(const Value: string);
то там мы сможем обнаружить следующую строку:while (P^ > " ") and (P^ <> Delimiter) do
.
В принципе об этом на неявно и намекает хэлп: Use DelimitedText to get or set all the strings in the TStrings object in a single string.
Желаю успехов
← →
Rouse_ (2004-02-16 20:27) [3]Забыл добавить: поэтому если хочешь получить то? что ты написал? то проще будет через StringReplace.
← →
REA (2004-02-17 09:10) [4]А кавычки там не помогут? Я алгоритм не помню, но что-то какое было. Или это CommaText?
Хм - в примере совсем без пробелов:
"String1, String 2, String 3,"
the string list will contain
String1
String2
String3
<Blank>
← →
имя (2004-02-17 11:12) [5]Удалено модератором
← →
Плохиш (2004-02-17 11:20) [6]
> А кавычки там не помогут?
Помогут, только не кавычки, а QuoteChar
← →
Rouse_ (2004-02-17 11:20) [7]Странно - какаято ерунда у меня написалась (кракозябры), повторю пост:
Ну почемуже не помогут - помогут: StringList.DelimitedText:=""1 11";222;333;";
Опять - же это описано в хэлпе.
ЗЫ: Про StringReplace - это я переборщил. Проверил через цикл, всеже DelimitedText работает примерно в два раза быстрее. Моя ошибка была...
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.02.29;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c