Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как удалить дубли? / 5 сообщений из 5, страница 1 из 1
22.02.2020, 09:23
    #39929708
Fier
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить дубли?
Из массива вывожу в первый стрингрид для визуализации,потом добавляю в стринглист без дублей, и добавляю в стрингрид 2.
На форме кнопка Button и два StringGrid:


Код: pascal
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.
unit Unit2;

interface

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

type
  TForm2 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    Memo1: TMemo;
    StringGrid1: TStringGrid;
    StringGrid2: TStringGrid;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
var mas:  array[1..7] of string;//задаём одномерный массив
    mas2: array[1..7] of string;//задаём одномерный массив
i,j:integer;
StrList: TStringList; //список строк
begin
mas[1]:='один';
mas[2]:='два';
mas[3]:='три';
mas[4]:='один';
mas[5]:='один';
mas[6]:='два';
mas[7]:='один';

//чтоб визуально смотреть
StringGrid1.RowCount:=7; //количество строк
StringGrid1.ColCount:=1; //количество столбцов
for i:=1 to 7 do
StringGrid1.Cells[0,i]:=mas[i]; //выводим в таблицу

StrList:=TStringList.Create;  //создаём лист строк
StrList.Duplicates:=dupIgnore; //игнорировать  дубли

for i:=1 to 7 do
  StrList.Add(mas[i]);   //добавить в список без дублей


StringGrid2.RowCount:=7; //количество строк
StringGrid2.ColCount:=1; //количество столбцов
for i:=1 to 6 do//7
StringGrid2.Cells[0,i]:=StrList[i];//выводим в таблицу

end;

end.

...
Рейтинг: 0 / 0
22.02.2020, 09:40
    #39929711
Gerasimenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить дубли?
Fier,
автор
Код: pascal
1.
StringGrid2.RowCount:=7; //количество строк


Код: pascal
1.
StringGrid2.RowCount:=StrList.Count+1;


автор
Код: pascal
1.
for i:=1 to 6 do


Код: pascal
1.
for i:=1 to StrList.Count-1 // or StringGrid2.RowCount-1 
...
Рейтинг: 0 / 0
22.02.2020, 09:40
    #39929712
nicholaos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить дубли?
Код: pascal
1.
StrList.Sorted := True;
...
Рейтинг: 0 / 0
22.02.2020, 09:48
    #39929713
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить дубли?
Fier> Из массива вывожу в первый стрингрид для визуализации,
Fier> потом добавляю в стринглист без дублей, и добавляю в стрингрид 2.

Во-первых, многовато телодвижений для просто удаления дублей.
Во-вторых, "Note: Duplicates does nothing if the list is not sorted."
...
Рейтинг: 0 / 0
22.02.2020, 10:25
    #39929717
Fier
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить дубли?
Спасибо за ответы,сортировка вполне подойдёт.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как удалить дубли? / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]