Помощь - Поиск - Пользователи - Календарь
Полная версия: Удаление лишних пробелов Tedit
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
klem4
Простейшая проблема : В TEdit есть текст, нужно удалить пробелы в начале и конце, то есть из строки

s = ' string ';

долна получиться строка

s = 'string';

На Паскале такой код отрабаывает без ошибок (пока только для начала строки):

while (s[1] = ' ') and (Length(s) > 0) do Delete(s, 1, 1);


Работает безошибочно, даже если ввести строку, полностью состоящую из пробелов, в делфи же, если TEdit содержит _только_ пробелы, такой код вызывает Access violation ... Почему ?

procedure TForm1.Button1Click(Sender: TObject);
var
s: String;
begin
s := Edit1.Text;
while (s[1] = ' ') and (Length(s) > 0) do Delete(s, 1, 1);
end;
volvo
Потому, что надо СНАЧАЛА проверять длину, и если она НЕнулевая, обращаться к s[1], иначе ты обращаешься к "запредельной территории"...
klem4
логично =(

Спасибо.
мисс_граффити
А почему ты не хочешь пользоваться подавлением пробелов типа Trim?
klem4
Цитата(мисс_граффити @ 21.10.2006 13:07) *

А почему ты не хочешь пользоваться подавлением пробелов типа Trim?


Видимо, потомучто не знал о существовании такой функции smile.gif Теперь буду пользоваться, псасибо ;)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.