Поиск числа в таблице

Доброго времени суток. У меня есть один стринггрид в котором допустим 10 строк и 2 столбца. И есть два эдита. В чем задача: Нужно что бы число из Эдита1 сравнивалось с числом из 1 столбца стринг грид.После того как нашлось совпадение в стринг грид 1, нужно что бы число из соседней ячейки (уже со 2 строки) передавалось на эдит2. на ум приходит только локальный поиск
8 ответов

void __fastcall TForm1::Button1Click(TObject *Sender)
{
    int ix = StringGrid1->Cols[0]->IndexOf(Edit1->Text);
    if(ix != -1)
    {
        Edit2->Text = StringGrid1->Cells[1][ix];
    }
    else
    {
        Edit2->Text = L"Искомое значение не найдено в первом столбце грида";
    }
}
Так?


По-моему тут должен быть цикл


Тут не нужен цикл. Потому что он есть внутри метода IndexOf. Код проверен, работает.


А если, допустим, значение в edit1 больше значения в 1 столбце стринггрида, и нужно в эдит 2 вносить последнее максимальное. а если меньше, то первое минимальное.


А если, допустим, сразу писать полное условие, а не придумывать его потом, по ходу того, как кто-то уже выкладывает решение?
значение в edit1 больше значения в 1 столбце стринггрида
Больше КАКОГО значения? Максимального?
а если меньше
Меньше ЧЕГО?


Просто каждый раз новая идея. Ну вот смотри. Допустим:
4 10
5 32
6 35
Если в эдит 1 будет значение 7 и выше, то выводить в эдит 2 значение 35. Если ниже 4, то значение 10


Элементы в первом столбце всегда будут упорядочены?Даже если так, что делать, если:
4 10
5 32
7 35
, и пользователь вводит 6, которого нет в первом столбце, но оно не меньше минимального и не больше максимального для этого столбца?


Да. Там они все по порядку от 2.0 до 6.0 c интервалом 0.1. При чем в три столбца (всего 6 столбцов). 0,2,4 - столбцы для этих чисел, и 1,3,5 - для тех, что нужно вставлять в эдит 2.(Имеется в виду нумировка столбцов в стринггриде)