IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

 
Closed Topic Открыть новую тему 
> поиск слов в текстовом файле с помощью проги в, Delphi ! помогите сделать please!
~Maks~
сообщение 10.12.2005 12:36
Сообщение #1


Гость






Здравствуйте!
мне нужет текст программы в Delphi !

программа

В текстовый файл записываем слова(слова в столбик пишем), в делфи пишим программую которая по запросу ищет слово или слово сочитание в текстовом файле! после нахождения выводит результат.
интерфейс
1.поле
2.кнопка 'поиск'
3. поле где выводится результат

---
если ничего не нашла программа пишим в поле что ничего не найдено


please кто шарит напишите программу пожалуйста!
 К началу страницы 
+ Ответить 
GoodWind
сообщение 10.12.2005 12:54
Сообщение #2


Автооответчик
*****

Группа: Модераторы
Сообщений: 1 188
Пол: Мужской
Реальное имя: Александр

Репутация: -  16  +


в чем затруднения ?
сам писАть пробовал, или хочешь чтобы за тебя решили?

Примерный алгоритм:
1.открываешь файл
2.пока не конец файла
начало
читаешь строку
если строка не совпадает с искомой то продолжаешь
иначе к пункту 3.
конец
3. Выводишь результат.


--------------------
Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
~Maks~
сообщение 10.12.2005 16:21
Сообщение #3


Гость






трудность в том что я на словах знаю как это сделать(то что ты написал) а написать программу не шарю как !

кому не сложно помогите plz !! mega_chok.gif
 К началу страницы 
+ Ответить 
GoodWind
сообщение 10.12.2005 17:40
Сообщение #4


Автооответчик
*****

Группа: Модераторы
Сообщений: 1 188
Пол: Мужской
Реальное имя: Александр

Репутация: -  16  +


unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
const LIST_FILENAME='c:\file.txt';
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Label1: TLabel;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
sl:TStringList;
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
sl:=TstringList.Create;
sl.LoadFromFile(LIST_FILENAME);
end;

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
label1.Caption:='Ничего не найдено';
for i:=0 to sl.Count-1 do
begin
if sl.Strings[i]=Edit1.Text
then label1.Caption:=sl.Strings[i];
end;
end;

end.


вроде работает rolleyes.gif


--------------------
Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
~Maks~
сообщение 10.12.2005 18:37
Сообщение #5


Гость






To: GoodWind
огромное тебе спасибо ! ты хороший человек!

не можешь подсказать ещё какие процедуры нужно вставить для

счётчика? тоесть сколько раз я нашёл(запросил) какоенить слово ! к примеру слово1 я запросил 5 раз а слово2 запросил 10 раз а слово3 2 раза и т.д. что бы это куданить записывалось а потом сортировалось в файле txt от большего к меньшему!

подскажите несли тебе не составит труда !
зарание благодарин!
 К началу страницы 
+ Ответить 
GoodWind
сообщение 10.12.2005 18:39
Сообщение #6


Автооответчик
*****

Группа: Модераторы
Сообщений: 1 188
Пол: Мужской
Реальное имя: Александр

Репутация: -  16  +


"ух... ну у вас и запросы - сказала база данных и повисла"
счас погляжу....

Цитата
ты хороший человек!

да прям =)


--------------------
Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Guest
сообщение 10.12.2005 21:15
Сообщение #7


Гость






To: GoodWind
_List:=TStringlist.Create;

выдаёт ошибку ! её надо немного модернизировать под сортировку только хз как !

Код

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    Memo2: TMemo;
    Edit1: TEdit;
    Edit2: TEdit;
    Memo3: TMemo;
    ListBox1: TListBox;
    procedure Button1Click(Sender: TObject);
    procedure ListBox1Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;  i:integer; _List:TStrings;

implementation

{$R *.dfm}


procedure TForm1.Button1Click(Sender: TObject);
var i,num:integer; _List,_ListCount:TStrings; tmpBuf:string;

  function GetNumLine(_List:TStrings; FileString:string):integer;

  var i:integer;

  begin

  result:=-1;

    for i:=0 to _list.Count-1 do

    if pos(FileString+'|',_list.Strings[i])>0 then begin

    result:=i;

    exit;

    end;

  end;



begin
  _List:=TStringlist.Create;

_ListCount:=TStringlist.Create;

try

_List.LoadFromFile('c:\s.txt');

if fileexists('c:\_count.txt') then _ListCount.LoadFromFile('c:\_count.txt');

  memo2.Clear;

for i:=0 to memo1.Lines.Count-1 do begin

  if _List.IndexOf(memo1.Lines.Strings[i])<>-1 then

    memo2.Lines.Add(memo1.Lines.Strings[i]);

  num:=GetNumLine(_ListCount,memo1.Lines.Strings[i]);

  

  if num<0 then _ListCount.Add(memo1.Lines.Strings[i]+'|1') else begin

    tmpBuf:=_ListCount.Strings[num];

    _ListCount.Strings[num]:=memo1.Lines.Strings[i]+'|'+
      inttostr(strtoint(copy(tmpBuf,pos('|',tmpBuf)+1,
            length(tmpBuf)-pos('|',tmpBuf)))+1);

    end;

end;

if memo2.Lines.Count=0 then memo2.Lines.Add('Ieoeaa ia iaeaaii...');


memo3.Clear;

for i:=0 to _ListCount.Count-1 do

  memo3.Lines.Add(copy(_ListCount.Strings[i],1,pos('|',_ListCount.Strings[i])-1) +
    ' - ' + copy(_ListCount.Strings[i],pos('|',_ListCount.Strings[i])+1,
    length(_ListCount.Strings[i])-pos('|',_ListCount.Strings[i])));


  _ListCount.SaveToFile('c:\_count.txt');

finally

_List.Free;

_ListCount.free;

end;

end;
_List:=TStringlist.Create;

try

_List.LoadFromFile('c:/s.txt');

  memo2.Clear;

for i:=0 to memo1.Lines.Count-1 do

  if _List.IndexOf(memo1.Lines.Strings[i])<>-1 then

    memo2.Lines.Add(memo1.Lines.Strings[i]);

  if memo2.lines.count<0 then memo2.Lines.Add('Ничего не найдено...');

finally

_List.Free;

end.
 К началу страницы 
+ Ответить 
~Maks~
сообщение 11.12.2005 12:48
Сообщение #8


Гость






Код

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    Memo2: TMemo;
    Edit1: TEdit;
    Edit2: TEdit;
    Memo3: TMemo;
    Edit3: TEdit;
    procedure Button1Click(Sender: TObject);


  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;  i:integer;

implementation


{$R *.dfm}



procedure TForm1.Button1Click(Sender: TObject);

var i,num:integer;_list, _ListCount:TStringList; tmpBuf:string;


function GetNumLine(List:TStringList; FileString:string):integer;

var i:integer;

begin

    result:=-1;

    for i:=0 to list.Count-1 do

    if pos(FileString+'|',list.Strings[i])>0 then

    begin

        result:=i;

        exit;

    end;

end;



begin

    _List:=TStringlist.Create;

    _ListCount:=TStringlist.Create;

    try

        _List.LoadFromFile('c:\s.txt');

        if fileexists('c:\_count.txt') then _ListCount.LoadFromFile('c:\_count.txt');

        memo2.Clear;

        for i:=0 to memo1.Lines.Count-1 do

        begin

            if _List.IndexOf(memo1.Lines.Strings[i])<>-1 then

                memo2.Lines.Add(memo1.Lines.Strings[i]);

            num:=GetNumLine(_ListCount,memo1.Lines.Strings[i]);

            if num<0 then _ListCount.Add(memo1.Lines.Strings[i]+'|1')

            else

            begin

                tmpBuf:=_ListCount.Strings[num];
                _ListCount.Strings[num]:=
                                  memo1.Lines.Strings[i]+'|'+
                                  inttostr(strtoint(copy(tmpBuf,pos('|',tmpBuf)+1,
                                  length(tmpBuf)-pos('|',tmpBuf)))+1);

            end;

        end;

        if memo2.Lines.Count=0 then memo2.Lines.Add('Ieoeaa ia iaeaaii...');

        memo3.Clear;

        for i:=0 to _ListCount.Count-1 do

            memo3.Lines.Add(copy(_ListCount.Strings[i],1,
                             pos('|',_ListCount.Strings[i])-1) +
                             ' - '+ copy(_ListCount.Strings[i],pos('|',_ListCount.Strings[i])+1,
                             length(_ListCount.Strings[i])-pos('|',_ListCount.Strings[i])));

            _ListCount.SaveToFile('c:\_count.txt');

    finally

        _List.Free;

        _ListCount.free;

    end; //try-finally


    _List:=TStringlist.Create;

    try

        _List.LoadFromFile('c:\s.txt');

        memo2.Clear;

        for i:=0 to memo1.Lines.Count-1 do

            if _List.IndexOf(memo1.Lines.Strings[i])<>-1 then

                memo2.Lines.Add(memo1.Lines.Strings[i]);

        if memo2.lines.count=0 then memo2.Lines.Add('Ничего не найдено...');

    finally

        _List.Free;


end; //try-finally

end;


end.

ошибку исправил!

Не ТЫ исправил, а ТЕБЕ исправили... Сказать, кто? Ты что думаешь, самый умный, с одного форума на другой задачки перекидываешь, и создаешь и там и там ВИДИМОСТЬ того, что что-то делаешь? Не пойдет... Привет Тестировщице !!!

подскажите как сделать сортировку в файле _List.LoadFromFile('c:\s.txt');
тоесть в s.txt что бы сортировалось по данным из файла _ListCount.SaveToFile('c:\_count.txt'); _count.txt !

имеются мемо1 мемо2 мемо3 едит1 едит2 едит3

в мемо3 выводится счётчик запросов тоесть сколько раз запросил какоенить слово! это всё записывается в файл _count.txt !
а мне нужно что бы по средством этой статы сортировались слова от большего(больше запросов) к меньшмему(мало запросов)
пример:
файл _count.txt
кот-1
лиса-3
волк-6
медведь-2

файл s.txt
волк
лиса
медведь
кот

-----------
вот так мне нужно помогите plz сделать !
 К началу страницы 
+ Ответить 

Closed Topic Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 10.07.2025 22:44
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"