Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.01.2012, 15:00   #1
victorshkoda
Пользователь
 
Аватар для victorshkoda
 
Регистрация: 04.01.2012
Сообщений: 71
По умолчанию Лишние символы вводимого текста

Доброго времени суток.
Столкнулся с проблемой. Ввожу в Memo текст, к примеру "привет", а на выходе получаю если string, то "привет" а длина почему-то 8 символов.
Код:
procedure TForm1.Button1Click(Sender: TObject);
var i,: integer;
var s, q: string;
begin
  s:=Memo1.Text;
  Edit1.Text:=s;
  i:=length(s);
  //q:='fff';
  q:=inttostr (i);
  Edit2.Text:=q;
end;
Сначала решил, что ВОМ вылазит, но там 3 символа.
Может кто подскажет, в чем проблема?


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 04.01.2012 в 16:38.
victorshkoda вне форума Ответить с цитированием
Старый 04.01.2012, 15:17   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
Ввожу в Memo текст, к примеру "привет"
<Enter> жмете? (#10+#13 как раз 2 символа)
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 04.01.2012, 16:04   #3
victorshkoda
Пользователь
 
Аватар для victorshkoda
 
Регистрация: 04.01.2012
Сообщений: 71
По умолчанию

Нет, сразу на кнопку.
victorshkoda вне форума Ответить с цитированием
Старый 04.01.2012, 16:37   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Mad_Cat говорит о том, что у Вас в Memo в конце строки есть переход на новую строчку.
попробуйте их удалить перед обработкой:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var i,: integer;
var s, q: string;
begin
  s:=Memo1.Text;
  while (Length(s)>0) and (s[Length(s)] in [#10,#13]) do Delete(s, Length(s),1); 
  Edit1.Text:=s;
....
или, если интересует только ОДНА строка из мемо, то её и берите:
Код:
  s := '';
  if Memo1.Lines.Count>0 then
     s:=Memo1.Lines[0];  // взять 1-ю строчку из Memo1

Последний раз редактировалось Serge_Bliznykov; 04.01.2012 в 16:41.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 04.01.2012, 16:44   #5
victorshkoda
Пользователь
 
Аватар для victorshkoda
 
Регистрация: 04.01.2012
Сообщений: 71
По умолчанию

Спасибо, помогло.
victorshkoda вне форума Ответить с цитированием
Старый 04.01.2012, 16:44   #6
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

позксперементировал)
1)ввод "Привет"---> <Enter> --> кнопка==> Length(Memo.text) =8
2)ввод "Привет" --> кнопка==> Length(Memo.text) =6
вывод: все-таки это #10#13
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 04.01.2012, 17:58   #7
victorshkoda
Пользователь
 
Аватар для victorshkoda
 
Регистрация: 04.01.2012
Сообщений: 71
По умолчанию

Выходит у меня в самой программе баг?
victorshkoda вне форума Ответить с цитированием
Старый 04.01.2012, 18:10   #8
chertovich
Форумчанин
 
Аватар для chertovich
 
Регистрация: 26.07.2009
Сообщений: 489
По умолчанию

Используйте
Код:
Edit1.Text := Trim(Memo1.Text)
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.
chertovich вне форума Ответить с цитированием
Старый 05.01.2012, 11:24   #9
3D Hunter
Сумрачная тень
Форумчанин
 
Аватар для 3D Hunter
 
Регистрация: 05.03.2009
Сообщений: 689
По умолчанию

Функция Trim режет пробелы, а не символы возврата и перевода каретки.
"ковыряю изнутри" (с)
3D Hunter вне форума Ответить с цитированием
Старый 05.01.2012, 12:05   #10
chertovich
Форумчанин
 
Аватар для chertovich
 
Регистрация: 26.07.2009
Сообщений: 489
По умолчанию

Цитата:
Сообщение от 3D Hunter Посмотреть сообщение
Функция Trim режет пробелы, а не символы возврата и перевода каретки.
Trim, удаляет с начала и конца строки непечатуемые символы. Прежде чем что-то писать, проверяй.
http://www.delphibasics.ru/Trim.php
Цитата:
Функция Trim удаляет пробельные и управляющие символы (такие как перевод строки) в начале и в конце строки.
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.
chertovich вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Форматирование вводимого текста Timon779 HTML и CSS 1 04.11.2011 02:17
лишние символы в ячейке StringGrid при раскрашивании furstenberg Компоненты Delphi 5 29.10.2011 14:06
При копировании текста из word в блокнот появляются лишние символы. paru10 Microsoft Office Word 2 11.02.2010 16:16
Вставка вводимого текста в код программы var Помощь студентам 10 18.02.2008 15:10
Проверка – является ли раскладка клавиатуры правильной для вводимого текста Xandr Общие вопросы Delphi 7 02.11.2007 09:25