Форум программистов, компьютерный форум, киберфорум
Наши страницы

Delphi для начинающих

Войти
Регистрация
Восстановить пароль
 
Saskaaaa
0 / 0 / 0
Регистрация: 17.12.2014
Сообщений: 39
#1

фильтрация и подсчет - Delphi

28.03.2017, 13:58. Просмотров 210. Ответов 13
Метки нет (Все метки)

В RichEdit загружается txt файл.
нужно:
1) что бы первая кнопка "фильтровала" файл (убирала лишнее) и оставляла только сайты - пример http://2ip.ru/ ;
2) вторая кнопка подсчитывала эти сайты.

Изменения должны быть все в RichEdit.

Помогите пожалуйста, стараюсь сам разобраться, но сроки поджимают.

p.s. форма и текстовый файл в приложении.
0
Вложения
Тип файла: rar делф.rar (178.7 Кб, 1 просмотров)
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.03.2017, 13:58
Я подобрал для вас темы с готовыми решениями и ответами на вопрос фильтрация и подсчет (Delphi):

Фильтрация - Delphi
Знатоки, подскажите, можно ли ADOTable фильтровать несколько раз? Т.е. сделать фильтр, далее по отфильтрованным данным сделать еще один...

Фильтрация БД - Delphi
Всем доброго время суток! Подскажите пожалуйста.у меня есть БД.мне нужно организовать поиск.А точнее фильтрацию по вводу слова в Edit.Но...

Фильтрация БД в dbgrid - Delphi
Привет всем! Представь себе pagecontrol с 2мя табами, на обоих табах стоит dbgrid к которым прицеплена одна и та же база. В первом табе...

Фильтрация трафика - Delphi
Доброго времени всем! Есть программа, она обменивается пакетами с сервером. Скажите пожалуйста, как можно фильтровать ВХОДЯЩИЕ пакеты....

фильтрация и поиск - Delphi
нужно чтобы поиск выводил к отображению в дбгрид только записи начинающееся на 21, а не все или чтобы фильтрация икала не точное значение...

Фильтрация в ListView - Delphi
Здравствуйте! покажите пожалуйста, как сделать фильтрацию в ListView? допустим вводим в Edit1.Text текст и в ListView остаются только те...

13
Puporev
Модератор
54001 / 41634 / 14718
Регистрация: 18.05.2008
Сообщений: 97,867
28.03.2017, 15:23 #2
Например так.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
var
  Form1: TForm1;
  t:TStringList;
implementation
 
{$R *.dfm}
 
procedure TForm1.N2Click(Sender: TObject);
begin
t:=TStringList.Create;
if dlgOpen1.Execute = True then
t.LoadFromFile(dlgOpen1.FileName);
RichEdit1.Text:=t.Text;
end;
 
procedure TForm1.btn1Click(Sender: TObject);
var i:integer;
    s:string;
begin
for i:=0 to t.Count-1 do
 begin
  s:=t[i];
  delete(s,1,pos('http',s)-1);
  delete(s,pos('- -',s),length(s));
  t[i]:=s;
 end;
RichEdit1.Text:=t.Text;
end;
 
procedure TForm1.btn2Click(Sender: TObject);
begin
ShowMessage('Количество сайтов='+inttostr(t.Count));
t.Free;
end;
1
Saskaaaa
0 / 0 / 0
Регистрация: 17.12.2014
Сообщений: 39
28.03.2017, 16:09  [ТС] #3
Спасибо!, все работает великолепно.

только я не правильно описал 2-ой пункт.

2) Нужно подсчитать сколько тех или иных сайтов в отдельности, а не общую сумму.
т.е. например yandex - 28
cyberforum - 123
-------
0
Puporev
Модератор
54001 / 41634 / 14718
Регистрация: 18.05.2008
Сообщений: 97,867
28.03.2017, 16:44 #4
Т.е. сайты типа 2ip, img.2ip, www.google-analitics ?
0
Saskaaaa
0 / 0 / 0
Регистрация: 17.12.2014
Сообщений: 39
28.03.2017, 16:52  [ТС] #5
всё правильно!
0
Puporev
Модератор
54001 / 41634 / 14718
Регистрация: 18.05.2008
Сообщений: 97,867
28.03.2017, 16:57 #6
Извини, пока некогда.
0
Saskaaaa
0 / 0 / 0
Регистрация: 17.12.2014
Сообщений: 39
28.03.2017, 17:02  [ТС] #7
Спасибо за помощь!
ничего страшного, я подожду.
пока сам попробую разобраться.
0
Puporev
Модератор
54001 / 41634 / 14718
Регистрация: 18.05.2008
Сообщений: 97,867
28.03.2017, 17:48 #8
Почему-то в последней строке, часть ее не удаляется, а переносится на новую строку, почему, пока не знаю.
http://www.3dnews.ru/
1380603972.213 46 10.0.0.0 TCP_MISS/200
0
Saskaaaa
0 / 0 / 0
Регистрация: 17.12.2014
Сообщений: 39
28.03.2017, 18:10  [ТС] #9
тоже обратил на это внимание.
0
Saskaaaa
0 / 0 / 0
Регистрация: 17.12.2014
Сообщений: 39
28.03.2017, 18:21  [ТС] #10
txt который я скидывал, только примерный.
основной намного больше, и он "фильтруется" нормально.
фото во вложении скинул.
0
Миниатюры
фильтрация и подсчет  
Puporev
Модератор
54001 / 41634 / 14718
Регистрация: 18.05.2008
Сообщений: 97,867
28.03.2017, 19:06 #11
Ну раз нормально, тогда так.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
procedure TForm1.N2Click(Sender: TObject);
begin
t:=TStringList.Create;
if dlgOpen1.Execute = True then
t.LoadFromFile(dlgOpen1.FileName);
RichEdit1.Text:=t.Text;
end;
 
procedure TForm1.btn1Click(Sender: TObject);
var i:integer;
    s:string;
begin
for i:=0 to t.Count-1 do
 begin
  s:=t.Strings[i];
  delete(s,1,pos('http',s)-1);
  delete(s,pos('- -',s),length(s));
  t[i]:=s;
 end;
RichEdit1.Text:=t.Text;
end;
 
procedure TForm1.btn2Click(Sender: TObject);
type site=record
           naz:string[255];
           kol:integer;
           end;
var a:array of site;
    s,s1:string[255];
    n,i,j:integer;
begin
n:=0;
for i:=0 to t.Count-1 do
 begin
  s:=t[i];
  while s[length(s)]<>'.' do
  delete(s,length(s),1);
  delete(s,length(s),1);
  s1:='';
  j:=length(s);
  while s[j]<>'/' do
   begin
    s1:=s[j]+s1;
    j:=j-1;
   end;
  if i=0 then
   begin
    inc(n);
    setlength(a,n);
    a[n-1].naz:=s1;
    a[n-1].kol:=1;
   end
  else
   begin
    j:=0;
    while (j<n)and(a[j].naz<>s1)do
    inc(j);
    if j<n then inc(a[j].kol)
    else
     begin
      inc(n);
      setlength(a,n);
      a[n-1].naz:=s1;
      a[n-1].kol:=1;
     end;
    end;
 end;
t.Free;
for i:=0 to n-1 do
Memo1.Lines.Add(a[i].naz+'   '+inttostr(a[i].kol));
end;
1
Saskaaaa
0 / 0 / 0
Регистрация: 17.12.2014
Сообщений: 39
28.03.2017, 19:56  [ТС] #12
Puporev, спасибо большое!
это метод пузырька?

одно не понятно, почему при подсчете удаляется http:// и .ru ?
а так все работает!)
0
Миниатюры
фильтрация и подсчет  
Puporev
Модератор
54001 / 41634 / 14718
Регистрация: 18.05.2008
Сообщений: 97,867
28.03.2017, 20:13 #13
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
procedure TForm1.btn2Click(Sender: TObject);
type site=record
           pol_naz:string[255];
           kor_naz:string[255];
           kol:integer;
           end;
var a:array of site;
    s,s1:string[255];
    n,i,j:integer;
begin
n:=0;
for i:=0 to t.Count-1 do
 begin
  s:=t[i];
  while s[length(s)]<>'.' do
  delete(s,length(s),1);
  delete(s,length(s),1);
  s1:='';
  j:=length(s);
  while s[j]<>'/' do
   begin
    s1:=s[j]+s1;
    j:=j-1;
   end;
  if i=0 then
   begin
    inc(n);
    setlength(a,n);
    a[n-1].pol_naz:=t[i];
    a[n-1].kor_naz:=s1;
    a[n-1].kol:=1;
   end
  else
   begin
    j:=0;
    while (j<n)and(a[j].kor_naz<>s1)do
    inc(j);
    if j<n then inc(a[j].kol)
    else
     begin
      inc(n);
      setlength(a,n);
      a[n-1].pol_naz:=t[i];
      a[n-1].kor_naz:=s1;
      a[n-1].kol:=1;
     end;
    end;
 end;
t.Free;
for i:=0 to n-1 do
Memo1.Lines.Add(a[i].pol_naz+'   '+inttostr(a[i].kol));
end;
1
Saskaaaa
0 / 0 / 0
Регистрация: 17.12.2014
Сообщений: 39
28.03.2017, 20:21  [ТС] #14
Puporev, Вы лучший, Спасибо!
0
28.03.2017, 20:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.03.2017, 20:21
Привет! Вот еще темы с ответами:

Фильтрация текста - Delphi
Добрый вечер, Столкнулся со следующей проблемой: Например, есть текст &gt;&gt;AvitzminoZ&lt;&lt;. Как из него убрать &quot;&gt;&quot; и &quot;&lt;&quot;? И как вообще...

Цифровая фильтрация - Delphi
Суть задания, нарисовать график функции sin(x) в которой надо самому же поменять точки на другие, чтоб график вышел не правильным (я так...

Фильтрация данных - Delphi
Label4.Caption :='От фильтровано записей: '+inttostr(DM.tblobr.RecordCount); В какое событие это закинуть что бы он мне при малейшем...

Фильтрация данных - Delphi
помогите пожалуйста... как реализовать, чтоб при вводе возраста пациентов старше Х лет (х вводиться в edit1) с диагнозом Y (y вводится в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru