Авторизация

Логин: Пароль:
Регистрация Забыли свой пароль?

Связь слов с определениями

Страницы: 1
Связь слов с определениями
Помогите, пожалуйста, с такой проблемой. Есть список слов, допустим в ListBox и есть memo. Как сделать так, чтобы при выборе слова в listbox в memo появлялось его определение
А где вы храните определения?
Описание также как и слова хранятся в текстовых файлах
Все слова в одном файле или в нескольких? Что является разделителем?
Слова в нескольких.
Так, а определения и слова в одном файле?
Попробую объяснить с самого начала. В программе есть несколько кнопок. В зависимости от того какая кнопка нажата, загружается соответствующий список слов. А как загрузить определения я не знаю.
Сделайте каждое описание в отдельном файле. Имя файла должно совпадать со словом в списке и пользуйтесь таким кодом
Код
procedure TForm1.ListBox1Click(Sender: TObject);
begin
memo1.Clear;
try
memo1.Lines.LoadFromFile(ListBox1.Items.Strings[ListBox1.ItemIndex]+'.txt');
except
memo1.Lines.Add('Файла нет!!!');
end;
end;
Вам нужно организовать структуру данных и хранить все описания в одном файле. Структура у файла должна быть примерно следующая слово, разделитель, определение. И потом действовать примерно по такому алгоритму
Прочитать строку (Readln)
Найти в строке разделитель (Copy(ReadedString, 1, pos('разделитель', ReadedString)))
Добавить "слово" в listbox.
А потом просто при выборе слова в listbox доставать строку из файла.
А не проще использовать StringList. Создавать файл вида слово=определение.
Это не лучшие варианты, так как они не позволяют использовать многострочные определения.
Тогда можно использовать файлы формата слово, разделитель, определение, конец записи. И соответственно обрабатывать его.
Так в том то и проблема как его обработать?
Ну, можно удалить из файла все переводы строк и записать все в строку.
Вот тут обсуждалось блочное чтение файлов http://rpdn.ru/forum/12/79/ .Может быть вам нужно, что-нибудь подобное.
было у меня что-то подобное, точнее делал я задачу одному студенту (толковый словарь), так я реализовывал все через бд, слева на форме у меня был TreeView, а справа было memo в котором выводилось значение этого слова, если надо, то расскажу как делал...
в мертвом теле здоровый дух
Rash, конечно, интересно.
И мне интересно, особенно как вы решали проблему с омонимами.
Цитата
Виктор Кузьмин пишет:
Rash, конечно, интересно.

у мну в базе было 4 колонки, ключевое поле, буква, слово, толкование слова, через TreeView отображались буквы и слова, а в мемо толкование, пример процедуры ниже:
Код
Procedure TFormTree.ExpandLevel( Node : TTreeNode);
Var ID , i   : Integer;
    TreeNode : TTreeNode;
Begin

    // Для самого верхнего уровня выбрать только тех,
    // кто не имеет родителей.
    IF Node = nil Then ID:=0
    Else ID:=Integer(Node.Data);

    qTreeCompanies.Close;
    qTreeCompanies.ParamByName('ParentID').AsInteger:=ID;
    qTreeCompanies.Open;
          
    TreeCompanies.Items.BeginUpdate;
 
    // Для каждой строки из полученного набора данных
    // формируем ветвь в TreeView, как дочерние ветки к той,
    // которую мы только что "раскрыли"
    For i:=1 To qTreeCompanies.RecordCount Do
    Begin

       // Запишем в поле Data ветки ее идентификационный номер(ID) в таблице
       TreeNode:=TreeCompanies.Items.AddChildObject(Node ,
                                  qTreeCompanies.FieldByName('Name').AsString ,
                                  Pointer(qTreeCompanies.FieldByName('ID').AsInteger));

       TreeNode.ImageIndex:=1;
       TreeNode.SelectedIndex:=2;

       // Добавим фиктивную (пустую) дочернюю ветвь только для того,
       // чтобы был отрисован [+] на ветке и ее можно было бы раскрыть
       TreeCompanies.Items.AddChildObject(TreeNode , '' , nil);

       qTreeCompanies.Next;
    End;   
 
    TreeCompanies.Items.EndUpdate;

End;
в мертвом теле здоровый дух
Алексей Смирнов, ну врятли у студенческих работ столь серъёзная постановка задачи, да и по описанной задаче Виктора Кузьмина тоже не стоит такая задача, хотя было бы тоже интересно, по идее вообще без дополнительных меток на слова не решить, хотя модно в список описания выводить несколько определений(1.2.3.4 и так далее)
свободный страннык
да никак вы не свяжете определённый омоним с нужным вам определением без дополнительных меток, которые и будут собственно идентифицировать слова и определения.
пока ты не доволен жизнью - она проходит...
Страницы: 1
Читают тему (гостей: 1, пользователей: 0, из них скрытых: 0)