|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
21.03.2010, 12:15 | #1 |
Новичок
Джуниор
Регистрация: 20.03.2010
Сообщений: 2
|
подробнее о программе где сравнение массивов
Ув. Администраторы, это не учебный вопрос, а сугубо благотворительный! У меня есть свободно распространяемый справочник лекарственных препаратов(написанный мной лет 15 назад) сейчас появилась задача переделать его под винду(уже переделал) и за одно добавить к нему функцию сравнения несовместимости препаратов(собственно на чём и возникла проблема).
Вот алгоритм программы(если интересно): Человек вводит "любое название, даже бытовое, в любом склонении" 2 -ищем в базе название(бытовое или действ.) выводим действ. название и описание. И сейчас я добавляю процедуру сравнивания нескольких(до 5) действ.названий на совместимость. То есть вводим 6 названий, и если в файле(обычном текстовом win base.txt ) в одной строке есть комбинации этих слов(все варианты забиваются по таблицам), то как обычно выводим следующую строчку с ответом. Таким образом обычный человек не имея сложных таблиц(и умений ими пользоваться) может просто узнать от чего ему так хреново если он пьет "новопассит" и "аспирин" Просто до таких тонкостей раньше не доходило, и с массивами я могу только сравнить их как есть(по порядку) или количество букв в них, сумму чисел, а как просто сравнить содержимое не знаю(сначала думал что можно посчитать сумму ASCII кодов букв, не считает , хотя не пойму почему я же задавал array[0..255] может какой оператор есть? который бы просто обозначал содержимое массива не зависимо от порядка. то есть массив M [ а б в г д ] = Е [ б в г д а ] Может есть и другие способы поиска комбинации слов в файле, но я пока кроме сравнения массивов ничего не придумал. Если знаете как это сделать то поделитесь пожалуйста. |
21.03.2010, 12:40 | #2 |
Форумчанин
Регистрация: 16.02.2010
Сообщений: 316
|
вы про функцию pos когда нибудь слыхали?
пусть S - строка из файла n - то название которое надо найти if pos(' '+n+' ',s)<>0 значит мы нашли строку содержащую наше название вот теперь делайте с ней что хотите)) |
21.03.2010, 15:19 | #3 |
Новичок
Джуниор
Регистрация: 20.03.2010
Сообщений: 2
|
я с помощью Pos и обнаруживаю, pos(slovo,s)<>0 then....с кавычками просто находит слово из строки, ну найдём слова, но только если слова введены в том же порядке что и в строке.
Даже пробовал так: разбил "n" по словам 1, 2,3 4,5 и ищем поочередно if pos(slovo1,s) and pos(slovo2,s)>0 then begin и т.д. т.о. работает слова находит в любом порядке. НО! НЕ ГОДИТСЯ потому что находит эти слова в других строчках где присутствую и другие! Последний раз редактировалось mihali4; 21.03.2010 в 21:12. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сравнение массивов до заданной разницы (Delphi7) | giga_person | Помощь студентам | 1 | 17.02.2010 22:55 |
Корректное сравнение массивов на условии. | Alex Cones | Общие вопросы Delphi | 4 | 10.01.2010 15:08 |
расскажите подробнее об operator | Пепел Феникса | Общие вопросы C/C++ | 8 | 09.11.2009 00:09 |
Подскажите, где в программе ошибка | gamer123 | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 25.02.2008 03:09 |