Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2013, 17:46   #1
slipkos
Новичок
Джуниор
 
Регистрация: 02.06.2013
Сообщений: 3
По умолчанию Поиск слов в текстовом файле

Всем привет. Помогите пожалуйста, нужно сделать программу-словарь. То есть я ввожу, например, слово "авто" и мне выводятся все слова, где есть слово "авто", то есть автомобиль, автобус и т.д. Словарь находится в текстовом файле. У меня есть программа, впринципе, но я не знаю как ее можно исправить, потому что я дурак И все это, блин, нужно еще срочно. Помогите, кому не сложно. Если это очень легко для вас/было(я искал, но не смог сделать под себя), прошу, не ругайтесь, просто я сейчас еще занят документацией.. Во что у меня выходит :C
Во избежание недоразумений, хочу предупредить, что программу разрабатывал не я, а мой уровень программирования стремится к 0.


Код:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls;

type
TForm1 = class(TForm)
Label1: TLabel;
Memo1: TMemo;
Label2: TLabel;
Edit1: TEdit;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
SaveDialog1: TSaveDialog;
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

function match(word_init, word_to_check:string):boolean;
var i, j:integer;
found:boolean;
ar:array[1..255] of integer;
begin
match:=true;
for i:=1 to 255 do
ar[i]:=0;
for i:=1 to length(word_to_check) do
begin
if pos(word_to_check[i], word_init)=0 then //ïðîâåðêà ñóùåñòâóåò ëè äàííàÿ áóêâà â ñëîâå
begin
match:=false;
exit;
end;
found:=false;//èçíà÷àëüíîå îáîçíà÷åíèå òîãî, ÷òî áóêâà íå íàéäåíà
for j:=1 to length(word_init) do //ïðîâåðêà âñåõ áóêâ ñëîâà-èñòî÷íèêà
begin
if ((word_init[j]=word_to_check[i]) and (ar[j]=0)) then
begin
found:=true;
ar[j]:=1;
break;
end;
end;
if found=false then//åñëè áóêâà íå íàéäåíà â ñëîâå-èñòî÷íèêå
begin
match:=false;
exit;//âûõîä èç ïðîöåäóðû
end;
end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
if edit1.Text='' then BitBtn1.Enabled:=false else BitBtn1.Enabled:=true;
if edit1.Text='' then BitBtn2.Enabled:=false else BitBtn2.Enabled:=true;
end;

procedure TForm1.BitBtn2Click(Sender: TObject);
var f:textfile;
s:string;
begin
memo1.Clear;
assignfile(f, 'slova.txt');
reset(f);
while not EOF(f) do //âûïîëíÿòü äî êîíöà ôàéëà
begin
readln(f, s);
if match(edit1.Text, s) then memo1.Lines.Add(s);
end;
closefile(f);
BitBtn3.Enabled:=true;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
var f:textfile;
s:string;
exist:boolean;
begin
assignfile(f, 'slova.txt');
reset(f);
exist:=false;
while not EOF(f) do
begin
readln(f, s);
if edit1.Text=s then exist:=true;
end;
closefile(f);
append(f); //äîáàâëåíèå çàïèñè â ôàéë
if exist=false then writeln(f, edit1.Text);//åñëè ñëîâà â ñëîâàðå íåò, òî îíî òóäà äîáàâëÿåòñÿ
closefile(f);
if exist=false then showmessage('The word was successfully added to the dictionary!!!')
else showmessage('This word already exists in the dictionary!!!');
end;

procedure TForm1.BitBtn3Click(Sender: TObject);
var f:textfile;
i:integer;
begin
savedialog1.Execute;
assignfile(f, savedialog1.FileName);
rewrite(f);
writeln(f, 'Çàïðîñ: '+edit1.text+#13);
for i:=0 to memo1.Lines.Count-1 do
writeln(f, memo1.lines[i]);
closefile(f);
showmessage('Result was successfully saved to the file "'+savedialog1.FileName+'"');
end;

end.
Вложения
Тип файла: rar Программа.rar (532.3 Кб, 7 просмотров)

Последний раз редактировалось slipkos; 02.06.2013 в 18:52.
slipkos вне форума Ответить с цитированием
Старый 02.06.2013, 19:00   #2
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
но я не знаю как ее можно исправить, потому что я дурак И все это, блин, нужно еще срочно.
На самом деле все гораздо проще: Вам это вообще не нужно и, более того, - даже вредно.
s-andriano вне форума Ответить с цитированием
Старый 02.06.2013, 19:05   #3
slipkos
Новичок
Джуниор
 
Регистрация: 02.06.2013
Сообщений: 3
По умолчанию

Цитата:
Сообщение от s-andriano Посмотреть сообщение
На самом деле все гораздо проще: Вам это вообще не нужно и, более того, - даже вредно.
К сожалению, это не так.
slipkos вне форума Ответить с цитированием
Старый 02.06.2013, 19:12   #4
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от slipkos Посмотреть сообщение
К сожалению, это не так.
Вы ошибаетесь.
s-andriano вне форума Ответить с цитированием
Старый 02.06.2013, 19:18   #5
slipkos
Новичок
Джуниор
 
Регистрация: 02.06.2013
Сообщений: 3
По умолчанию

Цитата:
Сообщение от s-andriano Посмотреть сообщение
Вы ошибаетесь.
Я понимаю, что для вас это весело, но, прошу, воздержитесь. Я же не прошу вас мне помогать. Просто надеюсь, что тут есть люди которые смогут мне помочь.
slipkos вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
pascal, программа на подсчет в текстовом файле количества слов, состоящих из четырех букв Катя Миронова Помощь студентам 3 19.03.2013 19:23
Поиск слов по первой букве в текстовом файле (Pascal ABC.NET) Razdolbai Паскаль, Turbo Pascal, PascalABC.NET 4 12.11.2012 21:24
Поиск данных в текстовом файле (в самом файле! а не в Memo и не загружая всю инфу из файла в одну строку glagoff Помощь студентам 1 05.05.2010 13:00
Поиск слов в текстовом файле svt Помощь студентам 8 07.11.2009 19:56