![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
БОги Delphi 7, помогите смертному ))))))
мне нужно как-то устроить , что-бы при вводе теста в ComboBox, у меня находилось его определение из блокнота. и выводилось на экран либо в Memo либо ещё куда. Очень Нужно, помогите ), если не сложно ) |
|
#2
|
||||
|
||||
|
Что значит "находилось его определение из блокнота"?
|
|
#3
|
|||
|
|||
|
Например я вбиваю слово Математика, а в блокноте есть определение ,
- наука о структурах, порядке и отношениях, которая исторически сложилась на основе операций подсчёта, измерения и описания форм реальных объектов. слово - определение. Это реально ??? |
|
#4
|
||||
|
||||
|
Почему нет? составь импровизированную базу данных:
Код:
1 Математика наука о структурах, порядке и отношениях, которая исторически сложилась на основе операций подсчёта, измерения и описания форм реальных объектов. 2 Физика еще одна наука о структурах, порядке и ... Код:
var f:text; ... assignfile(f,'Baza.txt'); reset(f); while not eof(f) do begin readln(f,s); ...//обработка end; Цифры перед именами можно и убрать. Они просто для удобства редактирования вручную. З.Ы. думаю, все же определение не в "блокноте", а в текстовом файле ![]() Последний раз редактировалось Bargest, 05.12.2010 в 17:52. |
|
#5
|
|||
|
|||
|
а нумерацию 1, 2, 3,... не помешают в сombobox дописывать слова ?
просто я ещё использую PHP код:
|
|
#6
|
||||
|
||||
|
Они для удобства. Просто чтоб проще найти было че-нить. Компу пофигу. Можно и без них - распознавание все равно по пустой строке.
мешать они не будут, к тому же можно после чтения их убрать. |
|
#7
|
|||
|
|||
|
а как он считает из Combobox ? , и как он будет выводить в Memo ???
|
|
#8
|
||||
|
||||
|
В мемо
Код:
memo1.Lines.Add(s); Код:
n:=ComboBox1.ItemIndex; inc(n); // ItemIndex с нуля // далее ищем элемент с номером N или же отсчитываем N-1 пустых строк. // Да, не подумал. С циферками в БД попроще. |
|
#9
|
|||
|
|||
|
Блин, в принципе в голове понятно, но в прогу загнать не получается., Если тебе не трудно можешь мне скинуть такой исходник. а?
|
|
#10
|
||||
|
||||
|
исходник - врятли... разве что так, набрость...
Код:
var f:text;
...
procedure TForm1.ButtonOKClick(sender:TObject);
var i,k,t,err:integer;
s,ns:AnsiString;
begin
i:=ComboBox1.ItemIndex;
if i<0 then exit; // ниче не выбрано
assignfile(f,'База.txt');
reset(f);
while not eof(f) do
begin
readln(f,s);
k:=pos(' ',s);
if k>0 then
begin
ns:=copy(s,1,k-1);
delete(s,1,k);
val(ns,t,err);
if err=0 then
if t = i+1 then
while (not eof(f))and(s<>'') do
begin
readln(f,s);
Memo1.Lines.Add(s);
end;
end;
end;
closefile(f);
end; |
|
#11
|
|||
|
|||
|
Запустилось норм, а реакции нет. какая может быть ошибка ?
|
|
#12
|
||||
|
||||
|
Не знаю. Назначил кнопке обработчик?
|
|
#13
|
||||
|
||||
|
мой вариант, может не самый быстрый но кода мала
Код:
{структура файла
*математика
наука бла бла бла
*чайник
орудие пыток}
//На форме комбобокс и мемо
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
ComboBox1: TComboBox;
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var t:TStringList;
i,dlina:integer;
begin
t:=TStringList.Create;
t.LoadFromFile('1.txt');
for i:=0 to t.Count-1 do
begin
dlina:=length(t[i]);
if t[i][1]='*' then ComboBox1.Items.Add(copy(t[i],2,dlina-1));
end;
t.Free;
end;
procedure TForm1.ComboBox1Change(Sender: TObject);
var t:TStringList;
i,dlina:integer;
begin
t:=TStringList.Create;
t.LoadFromFile('1.txt');
for i:=0 to t.Count-1 do
begin
if (t[i])=('*'+ComboBox1.Text) then memo1.Text:=t[i+1];
end;
t.Free;
end;
end.
Вот проект: |
|
#14
|
|||
|
|||
|
ПАСИБ!!!! )
|