IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Удаление лишних пробелов Tedit
сообщение
Сообщение #1


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Простейшая проблема : В 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;


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Потому, что надо СНАЧАЛА проверять длину, и если она НЕнулевая, обращаться к s[1], иначе ты обращаешься к "запредельной территории"...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


логично =(

Спасибо.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


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


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Цитата(мисс_граффити @ 21.10.2006 13:07) *

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


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


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.11.2020 3:26
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name