Структура файла выглядит так:
лицевой номер /улица номер дома и подъезд / номер квартиры
001256 Московская 33 п.1 1
001257 Московская 33 п.1 2
001258 Московская 33 п.1 3Структуру могу сделать любую (файл генерирую из БД Acces) если надо могу поставить разделители между колонками например так: 001256
;Московская 33 п.1
;1
и таких строк в файле порядка 30000 (тридцать тысяч) и особо уже не увеличится.
Я подумал что от дурака надо сделать защиту, чтоб адрес не вводился а выбирался по типу выпадающего списка затем исходя из выбора адреса второй выпадающий список с номерами квартир только из выбранного адресе, и после выбора сделать проверку что все выбрано если нет указать какой параметр не выбран, и если все нормально выводить лицевой соответствующего адреса и квартиры.
Это реализовать на С++ могу с закрытыми глазами, а для web не хватает знаний, но если увижу пример попытаюсь вникнуть.
вот например как на С++ реализуется:
//загружаю в StringList строки для обработки из txt файла
word->LoadFromFile(ExtractFilePath(Application->ExeName)+"Spiski//adresa.txt");
//привожу к верхнему регистру выбранный пользователем адрес и квартиру
alladres->CommaText = jekadr + kvart ;//из списка адрес и квартира
//привожу к верхнему регистру адрес и квартиру выбранный пользователем
adres = String( alladres->Strings[0] + " " + alladres->Strings[1] ).UpperCase();
//начинаем обработку полученных данных
//перебираю строки из списка в цикле
for(int i = 0; i < word->Count; ++i)
{
//привожу к верхнему регистру адрес из списка
list->CommaText = word->Strings[i];
//передаю в переменные типа String данные текущей строки
//лицевой счет
licevoi = list->Strings[0];
//адрес из списка адресов название улицы номер дома и номер квартиры
jekadr = String(list->Strings[1] + " " + list->Strings[2] + " " + list->Strings[3]).UpperCase();
//если есть совпадение пробуем внести изменение
if(adres == jekadr)
{
Edit1->Text = licevoi; // отображаю лицевой счет выбранного адреса
}
}