Форум: "Прочее";
Текущий архив: 2007.01.07;
Скачать: [xml.tar.bz2];
ВнизЧушь получается. Почему? Кто скажет? Найти похожие ветки
← →
Loginov Dmitry © (2006-12-15 20:28) [0]
procedure TForm1.Button1Click(Sender: TObject);
begin
with TStringList.Create do
begin
Text := #13#10" 1"#13#10;
Text := Trim(Strings[1]);
ShowMessageFmt(""%s"", [Text]);
Free;
end;
end;
← →
default © (2006-12-15 20:29) [1]а чё получается не так?
← →
Джо © (2006-12-15 20:30) [2]Почему чушь? Все получается, как надо.
← →
default © (2006-12-15 20:36) [3]единицу что-ли выдаёт?
← →
Джо © (2006-12-15 20:41) [4]Хотя да, последних #13#10 не должно бы остаться в TStringList.Text. Нужно смотреть реализацию GetText.
← →
Чапаев © (2006-12-15 20:42) [5]> Чушь получается. Почему? Кто скажет?
Типичный случай СКР... :-D
← →
Loginov Dmitry © (2006-12-15 20:47) [6]Такое нормально работает:
procedure TForm1.Button1Click(Sender: TObject);
var
S: string;
begin
S := #13#10" 1"#13#10;
S := Trim(S);
ShowMessageFmt(""%s"", [S]);
end;
← →
Loginov Dmitry © (2006-12-15 20:49) [7]> Нужно смотреть реализацию GetText.
Согласен. Глюк находится здесь.
← →
Loginov Dmitry © (2006-12-15 20:51) [8]Хотя наверное так и задумано :))
← →
Reindeer Moss Eater © (2006-12-15 20:57) [9]Text := #13#10" 1"#13#10;
Создает список из двух элементов.
Второй элемент strings[1] равен " 1"#13#10
Трим убирает не только пробелы, но и
Trims leading and trailing spaces and control characters from a string.
Присвоение Text := strings[1] присваивает "1" (без CRLF)
Но так как это элемент списка, то CRLF приклеивается к единице уже внутри стринглиста и Текст по прежнему вернет "1"#13#10
Отсюда и результат
"1
"
← →
Reindeer Moss Eater © (2006-12-15 20:58) [10]ShowMessageFmt(""%s"", [Trim(Text)]); --> "1"
← →
Джо © (2006-12-15 20:58) [11]> Второй элемент strings[1] равен " 1"#13#10
Только несколько нелогично, почему первый элемент может быть #13#10, а последний им быть не может.
← →
default © (2006-12-15 20:59) [12]а я думал три элемента будет:)
← →
Reindeer Moss Eater © (2006-12-15 21:00) [13]Только несколько нелогично, почему первый элемент может быть #13#10, а последний им быть не может.
Первый элемент - пустая строка
← →
Джо © (2006-12-15 21:01) [14]> [13] Reindeer Moss Eater © (15.12.06 21:00)
> Только несколько нелогично, почему первый элемент может
> быть #13#10, а последний им быть не может.
>
> Первый элемент - пустая строка
А почему тогда последний ею быть не может?
← →
default © (2006-12-15 21:06) [15]я бы ожидал такую логику
встаём на первую строку
видим #13#10 - переходим на вторую(первая строка - пустая)
потом выводим во вторую строку " 1"
потом увидели #13#10 - переход на третью строку
поскольку в третий строке тоже как и в первой нету символов - тоже пустая
это банальная логика, такой и ждут разработчики
надо устанавливать правила с позиции "наименьшего удивления" для клиента:)
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2007.01.07;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.011 c