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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.08.2009, 03:08   #1
lg12
Пользователь
 
Регистрация: 20.06.2009
Сообщений: 50
По умолчанию помогите найти ошибку

код:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var c,x,i:integer;
a:string;
begin
Memo1.Text;
for i:=0 to memo1.Lines.Count-1 do
if pos('ку', Memo1.Lines.Strings[i])<>0 then
begin
memo2.Lines.Add(inttostr(i));
a:=memo2.Lines.Strings[2];
c:=StrToInt(a);
label2.Caption:=inttostr(c);
end;
end;
end.
меняю на a:=memo2.Lines.Strings[1]; тогда работает

Последний раз редактировалось Stilet; 17.08.2009 в 08:03.
lg12 вне форума Ответить с цитированием
Старый 17.08.2009, 03:23   #2
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,453
По умолчанию

Я так и не понял, что точно вам надо, но может так:

Код:
procedure TForm1.btn1Click(Sender: TObject);
var
 i:integer;
 a: string;
begin
 for i:=0 to memo1.Lines.Count-1 do
 if pos('ку', Memo1.Lines.Strings[i])<>0 then
 begin
  memo.Lines.Add(inttostr(i));
  a:= Memo.Lines.Strings[1];
  lab.Caption:= a;
 end;
end;
uberchel вне форума Ответить с цитированием
Старый 17.08.2009, 03:31   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

a:=memo2.Lines.Strings[1]
так может в одной строке число а в другой нет?
Код:
a:=memo2.Lines.Strings[2];
c:=StrToInt(a);
а так короче будет:
Код:
c:=StrToInt(memo2.Lines.Strings[2]);
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 17.08.2009, 04:49   #4
Def_mzk
 
Регистрация: 09.11.2008
Сообщений: 5
По умолчанию

Цитата:
Сообщение от lg12 Посмотреть сообщение
код:
procedure TForm1.Button1Click(Sender: TObject);
var c,x,i:integer;
a:string;
begin
Memo1.Text;
for i:=0 to memo1.Lines.Count-1 do
if pos('ку', Memo1.Lines.Strings[i])<>0 then
begin
memo2.Lines.Add(inttostr(i));
a:=memo2.Lines.Strings[2];
c:=StrToInt(a);
label2.Caption:=inttostr(c);
end;
end;
end.
меняю на a:=memo2.Lines.Strings[1]; тогда работает
memo2.Lines.Strings[2] скорее всего равна null.
Def_mzk вне форума Ответить с цитированием
Старый 17.08.2009, 14:22   #5
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

А сколько строк записано в Мемо1?
puporev вне форума Ответить с цитированием
Старый 18.08.2009, 18:23   #6
lennon
Заблокирован
 
Регистрация: 18.11.2007
Сообщений: 254
По умолчанию

а может быть просто в паскале отсчет идет не с 0 а с 1? может такое быть?
lennon вне форума Ответить с цитированием
Старый 18.08.2009, 18:26   #7
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Цитата:
а может быть просто в паскале отсчет идет не с 0 а с 1? может такое быть?
Если писать точнее, то это Делфи. А писать с ноля или с одного зависит не от языка, а от типа переменных.
Кстати здесь написано от ноля
for i:=0 to memo1.Lines.Count-1 do
потому что в Мемо отсчет строк идет с ноля.
puporev вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите найти ошибку N!ckeL Общие вопросы Delphi 9 05.05.2008 14:15
Помогите найти ошибку Рената Паскаль, Turbo Pascal, PascalABC.NET 2 05.01.2008 04:29
help!!! Помогите найти ошибку!!! linker13 Общие вопросы Delphi 2 07.07.2007 23:15