powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как удалить дубли?
5 сообщений из 5, страница 1 из 1
Как удалить дубли?
    #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
Как удалить дубли?
    #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
Как удалить дубли?
    #39929712
nicholaos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: pascal
1.
StrList.Sorted := True;
...
Рейтинг: 0 / 0
Как удалить дубли?
    #39929713
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fier> Из массива вывожу в первый стрингрид для визуализации,
Fier> потом добавляю в стринглист без дублей, и добавляю в стрингрид 2.

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


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