Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.68/22: Рейтинг темы: голосов - 22, средняя оценка - 4.68
5 / 5 / 1
Регистрация: 25.01.2012
Сообщений: 86

Работа с циклом if else.

29.01.2012, 12:28. Показов 5045. Ответов 44
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго утра, дня или вечера! Кому как
Я понимаю, что, возможно, задаю очень глупый вопрос(заранее прошу прощения), но не могу разобраться с циклом.

C++
1
2
3
4
5
6
7
8
9
10
11
for (int i=sl->Count-1;i>=0;i--)
if (sl->Strings[i].Pos(edit3->Text))
{
String s=sl->Strings[i];
id=s.SubString(4,s.Pos("Name=")-4).ToInt();
sl->Delete(i);
sl->Delete(i-1);
sl->Delete(i-2);
break;
}
esle Form3->Show();
Если не находится нужного значения, то просто выскакивает ошибка и прога виснет. А надо, чтобы выскакивала другая форма без всяких ошибок.
Получилось только сделать, чтобы форма вместе с ошибкой выскакивала.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.01.2012, 12:28
Ответы с готовыми решениями:

работа с циклом
Помогите пожалуйста!!! В памяти находятся пять чисел. Найдите наименьшее из них.

Работа с циклом
Ребят, я хочу, чтобы в каждой ячейке генерировался число и в каждой следующей ячейке число было на 1 единицу больше. Ну и я понимаю, что...

Работа с циклом FOR
День добрый, требуется циклом пройтись по комбобоксам и едитам и зделать их видимыми, ну или активными: for c:=1 to J do ...

44
5 / 5 / 1
Регистрация: 25.01.2012
Сообщений: 86
30.01.2012, 06:23  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от LK Посмотреть сообщение

Не по теме:

да мне как бы побарабану, просто спросил

А я ничего не имею против Только ЗА.

А вот "по задумке"-то и не работает. Может Вы что подскажете?
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
30.01.2012, 06:30
мне этот код поначалу не понравился чисто визуально - ну, не гламурный он какой-то, - я попытался вникнуть в ход ваших мыслей, - получил аргументированный ответ "так задумано" по всем пунктам , понял, что вас все устраивает и все тип-топ, и вникать дальше, естественно, не стал, желание, как говорится, рассосалось
0
5 / 5 / 1
Регистрация: 25.01.2012
Сообщений: 86
30.01.2012, 06:33  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
мне этот код поначалу не понравился чисто визуально - ну, не гламурный он какой-то, - я попытался вникнуть в ход ваших мыслей, - получил однозначный ответ "так задумано" , понял, что вас все устраивает и все тип-топ, и вникать дальше, естественно, не стал , желание, как говорится, рассосалось
Не-не-не, я не против, если подскажете, как тоже самое сделать но лучше, я тут вообще новичок и сам не знаю как лучше, сделал как подсказали и сам подумал. Я не знаю друих вариантов, а если подскажете - буду очень благодарен

Щас попытаюсь объяснить зачем поиск нужен именно "с хвоста". Есть строка в файле:
App9=C:\Program Files\Adobe\Photoshop\Photoshop.exe
App9Name=Photoshop
Если я хочу найти Photoshop, то мне непременно нужно, чтобы это слово нашлось в нижней строке, а не в верхней.
Вот для этого я и использовал поиск "с хвоста".
Другого метода не знаю просто
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
30.01.2012, 06:40
s.Pos("Name=")-4).ToInt()
вот это, например, с какой целью сделано ?

Не по теме:

вопросы, на которые ответ мною получен, я повторять не буду :)

0
5 / 5 / 1
Регистрация: 25.01.2012
Сообщений: 86
30.01.2012, 06:43  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
вот это, например, с какой целью сделано ?

Не по теме:

вопросы, на которые ответ мною получен, я повторять не буду :)

C++
1
2
String s=sl->Strings[i];
id=s.SubString(4,s.Pos("Name=")-4).ToInt();
Находит и сохраняет в переменную число, которое стоит после App в строке
App9Name=....
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
30.01.2012, 06:45
Нет , меня интересовало именно .ToInt() ?
0
5 / 5 / 1
Регистрация: 25.01.2012
Сообщений: 86
30.01.2012, 06:50  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
Нет , меня интересовало именно .ToInt() ?
Если честно, сам не знаю, т.к. эту часть кода(как и многое другое) мне дали на этом форуме. Оно работает, я и не стал задумываться, что это - ToInt() - такое.
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
30.01.2012, 06:52
тогда пойдем по типа
1. какой тип вам возвратит
C++
1
s.Pos("Name=")
?
2. какой у вас тип переменной id ?
0
5 / 5 / 1
Регистрация: 25.01.2012
Сообщений: 86
30.01.2012, 06:56  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
тогда пойдем по типа
1. какой тип вам возвратит
C++
1
s.Pos("Name=")
?
2. какой у вас тип переменной id ?
1. Должен возвратить int.
2. Задан тип переменной int.
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
30.01.2012, 07:07
тогда зачем превращать это:
C++
1
s.SubString
, которое возвращает строку, в int - что и делает функция ToInt() , если s.Pos("Name=") уже возвратит вам int , на что вполне конкретно намекнул уважаемый QVO :
C++
1
if (sl->Strings[i].Pos(ИскомоеСлово))
ну а если вам охота удалить строку, в которой есть слово
C++
1
"Name="
, то, может, достаточно сделать
C++
1
2
3
4
if (sl->Strings[i].Pos("Name=")) {
  sl->Delete(i);
  /...
}
и вся возня с id лишняя ? хотя я не вникал в сакральное предназначение данной переменной.
1
5 / 5 / 1
Регистрация: 25.01.2012
Сообщений: 86
30.01.2012, 07:34  [ТС]
LK, Мне нужно далить строку, в которой находится значение из edit3 и ещё 2 строки, которые располагаются выше найденой строки. Сейчас на примере попробую объяснить, что я задумал

Есть файл со списком приложений:

App1=C:\Program Files\ABBYY FineReader 8.0 Professional Edition\FineReader.exe
App1Name=FineReader

App2=C:\Program Files\AIMP3\AIMP3.exe
App2Name=AIMP3

App3=C:\Program Files\Borland\CBuilder6\Bin\bcb.exe
App3Name=C++ Builder

App4=C:\Program Files\Lavalys\EVEREST Ultimate Edition\everest.exe
App4Name=Everest

App5=C:\Program Files\Opera\opera.exe
App5Name=Opera

App6=C:\Program Files\Photoshop\photoshop.exe
App6Name=Photoshop
Так вот, в поле edit3 вводится, например, Opera. Жмём на кнопку - начинается поиск строки с упоминанием в ней искомого слова. находится строка App5Name=Opera. Сначала с неё считывается цифра, которая идёт после App и заносится в переменную id - эта переменная будет в дальнейшем использоваться в программе для работы с другими файлами. После того, как цифру запомнили - удаляем найденую строку, строку выше неё и пустую строку, чтобы список не имел больших пробелов.
Такова была моя задумка

А потом наткнулся на такую ситуацию: если в edit3 вводилось слово, которого нет в файле, то после процесса поиска вылетала ошибка и программа висла. Вот я и задумался над тем, чтобы при неверном запросе выскакивало сообщение, что такого не найдено и предлагалось изменить данные в edit3.

Как-то так Вот настрочил-то О_о
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
30.01.2012, 07:38
да, я понял, спасибо

Добавлено через 1 минуту
я бы запоминал проще
C++
1
2
3
4
5
if (sl->Strings[i].Pos(Edit3->Text)) {
  id=i;
  sl->Delete(i);
  /...
}
, и почитал бы что-нибудь про типы данных в с++.

btw: не
C++
1
edit3->Text
, а
C++
1
Еdit3->Text
0
5 / 5 / 1
Регистрация: 25.01.2012
Сообщений: 86
30.01.2012, 07:47  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
да, я понял, спасибо

Добавлено через 1 минуту
я бы запоминал проще
C++
1
2
3
4
5
if (sl->Strings[i].Pos(Edit3->Text)) {
  id=i;
  sl->Delete(i);
  /...
}
, и почитал бы что-нибудь про типы данных в с++.
btw: не
C++
1
edit3->Text
, а
C++
1
Еdit3->Text
i это же индекс строки, а у меня id не равен индексу искомой строки... Или я что-то напутал?
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
30.01.2012, 08:03
нет, это я напутал, подумалось, что следует запомнить индекс удаляемой строки, а не индекс символа в удаляемой строке, извините
0
5 / 5 / 1
Регистрация: 25.01.2012
Сообщений: 86
30.01.2012, 08:30  [ТС]
С кодом я примерно понял, спасибо!

Вот теперь не могу сделать вторую часть своей задумки: если не выполнилось условие
C++
1
if (sl->Strings[i].Pos(Edit3->Text))
, то вывелось сообщение о том, что такого не найдено...
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
30.01.2012, 13:39
C++
1
2
if (sl->Strings[i].Pos(Edit3->Text)) {...}
else {ShowMessage"...";}
0
5 / 5 / 1
Регистрация: 25.01.2012
Сообщений: 86
30.01.2012, 13:45  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
C++
1
2
if (sl->Strings[i].Pos(Edit3->Text)) {...}
else {ShowMessage"...";}
Сообщение выдаётся почему-то всегда, даже если искомая строка существует.
0
 Аватар для QVO
652 / 462 / 80
Регистрация: 26.10.2010
Сообщений: 1,263
Записей в блоге: 4
30.01.2012, 14:32
ParadoxX27,
9 строка - нашел? - нет - Выдать сообщение что не нашел.
8 строка - нашел? - нет - Выдать сообщение что не нашел.
7 строка - нашел? - нет - Выдать сообщение что не нашел.
6 строка - нашел? - нет - Выдать сообщение что не нашел.
...
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
30.01.2012, 14:37
Кто ж знает, куда вы его воткнути и какую отсебятину добавили.
0
5 / 5 / 1
Регистрация: 25.01.2012
Сообщений: 86
30.01.2012, 14:46  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
11
12
for (int i=sl->Count-1;i>-1;i--)
{
        if (sl->Strings[i].Pos(Edit3->Text))
        {
        sl->Delete(i);
        sl->Delete(i-1);
        sl->Delete(i-2);
        break;
        }
        else {ShowMessage("Not Found");
        return;}
}
Вот весь код.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.01.2012, 14:46

Работа с Циклом
Добрый вечер такой вопрос $(document).ready(function(){ $('#text').each(function(i, d){ $(d).proList();}); ...

Работа с циклом
Приветствую! Требуется ваша помощь. Кратко опишу проблематику: Допустим у нас есть сборка (деталь), которая состоит из других деталей...

Работа с циклом do while
Здравствуйте! есть задача в которой используется метод прогонки с проверкой условия. я использовала следующий цикл: ...

Работа с циклом
У меня есть вот такой цикл, здесь выводится список новостей $result = mysql_query("SELECT...

Работа с циклом do{}while();
Приветствую всех кто заглянул такая проблема сам цикл запускается но не отрабатывает почему то в чём может быть проблема? using...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru