• Что бы вступить в ряды "Принятый кодер" Вам нужно:
    Написать 10 полезных сообщений или тем и Получить 10 симпатий.
    Для того кто не хочет терять время,может пожертвовать средства для поддержки сервеса, и вступить в ряды VIP на месяц, дополнительная информация в лс.

  • Пользаватели которые будут спамить, уходят в бан без предупреждения. Спам сообщения определяется администрацией и модератором.

  • Гость, Что бы Вы хотели увидеть на нашем Форуме? Изложить свои идеи и пожелания по улучшению форума Вы можете поделиться с нами здесь. ----> Перейдите сюда
  • Все пользователи не прошедшие проверку электронной почты будут заблокированы. Все вопросы с разблокировкой обращайтесь по адресу электронной почте : info@guardianelinks.com . Не пришло сообщение о проверке или о сбросе также сообщите нам.

Помогите С Кодом С Richedit При Переносе В Listview Последняя Строка Пропадает

  • Автор темы Автор темы Sascha
  • Дата начала Дата начала

Sascha

Заместитель Администратора
Команда форума
Администратор
Регистрация
9 Май 2015
Сообщения
1,548
Баллы
155
Вот сама программа и в ней видно что в верхнем окне 6 строк а в нижней 5 сам код находится ниже
мне нужно именно регулярные выражения , если есть у кого какие идеи помогите

Form.PNG
Код программы
Код:
unit Unit1;

interface

uses

  System.Classes,
  Vcl.Controls, Vcl.Forms, RegExpr, math, Vcl.ComCtrls, sListView,
  sButton, sRichEdit, sSkinManager, Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    sRichEdit1: TsRichEdit;
    sButton1: TsButton;
    sListView1: TsListView;
    sSkinManager1: TsSkinManager;
    procedure sButton1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}


procedure TForm1.sButton1Click(Sender: TObject);
var
  r: TRegExpr;
  tc: TListItem;
begin
  sListView1.Clear;
  r := TRegExpr.Create;
  r.Expression :=
    '(\d{2}:\d{2}:\d{2}:\d{2})      (\d{2}:\d{2}:\d{2}:\d{2})         .*?([ -_A-Z]+.MP3)';
  if r.Exec(sRichEdit1.Text) then
  begin
    repeat
      tc := sListView1.Items.Add;
      tc.Caption := r.Match[1];
      tc.SubItems.Add(r.Match[2]);
      tc.SubItems.Add(r.Match[3]);
    until not r.ExecNext;
  end;
  tc.Free;
end;

end.

и маленький кусочек текст

Код:
10:41:07:07      10:41:26:05         4.MERCY-MUSE.MP3
10:41:30:22      10:41:49:08         12 OH LOVE.MP3
10:42:06:07      10:42:29:13         8.CATHEDRAL-POPVIRUS INTERNATIONAL.MP3
10:43:14:13      10:43:44:18         2.SUPERHEROES-THE SCRIPT.MP3
10:43:52:07      10:44:09:04         2.BELIEVE-MUMFORD & SONS.MP3
10:44:19:06      10:44:31:19         1.YOU CAN NEVER BE READY-SUNRISE AVENUE.MP3
 
Вот сама программа и в ней видно что в верхнем окне 6 строк а в нижней 5 сам код находится ниже
мне нужно именно регулярные выражения , если есть у кого какие идеи помогите

Посмотреть вложение 281
Код программы
Код:
unit Unit1;

interface

uses

  System.Classes,
  Vcl.Controls, Vcl.Forms, RegExpr, math, Vcl.ComCtrls, sListView,
  sButton, sRichEdit, sSkinManager, Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    sRichEdit1: TsRichEdit;
    sButton1: TsButton;
    sListView1: TsListView;
    sSkinManager1: TsSkinManager;
    procedure sButton1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}


procedure TForm1.sButton1Click(Sender: TObject);
var
  r: TRegExpr;
  tc: TListItem;
begin
  sListView1.Clear;
  r := TRegExpr.Create;
  r.Expression :=
    '(\d{2}:\d{2}:\d{2}:\d{2})      (\d{2}:\d{2}:\d{2}:\d{2})         .*?([ -_A-Z]+.MP3)';
  if r.Exec(sRichEdit1.Text) then
  begin
    repeat
      tc := sListView1.Items.Add;
      tc.Caption := r.Match[1];
      tc.SubItems.Add(r.Match[2]);
      tc.SubItems.Add(r.Match[3]);
    until not r.ExecNext;
  end;
  tc.Free;
end;

end.

и маленький кусочек текст

Код:
10:41:07:07      10:41:26:05         4.MERCY-MUSE.MP3
10:41:30:22      10:41:49:08         12 OH LOVE.MP3
10:42:06:07      10:42:29:13         8.CATHEDRAL-POPVIRUS INTERNATIONAL.MP3
10:43:14:13      10:43:44:18         2.SUPERHEROES-THE SCRIPT.MP3
10:43:52:07      10:44:09:04         2.BELIEVE-MUMFORD & SONS.MP3
10:44:19:06      10:44:31:19         1.YOU CAN NEVER BE READY-SUNRISE AVENUE.MP3
Добовляй с нулевого индекса или массива,так как строки начинаються с -1
 
Проверил все работает значит дело не регуляторном выражении
1) Проверить ричедит на предмент ентеров лишних строк
2) tc.Free; - В конце убрать возможно ссылка на элемент
3)
var
r: TRegExpr;
tc: TListViewItem;

begin

r := TRegExpr.Create;
r.Expression :=
'(\d{2}:\d{2}:\d{2}:\d{2}) (\d{2}:\d{2}:\d{2}:\d{2}) .*?([ -_A-Z]+.MP3)';
if r.Exec(Memo1.Text ) then
begin
repeat
tc := ListView1.Items.Add;
tc.Text := r.Match[3];
until not r.ExecNext;
end;

end;
upload_2016-1-26_16-23-14.png
 
Проверил все работает значит дело не регуляторном выражении
1) Проверить ричедит на предмент ентеров лишних строк
2) tc.Free; - В конце убрать возможно ссылка на элемент
3)
var
r: TRegExpr;
tc: TListViewItem;

begin

r := TRegExpr.Create;
r.Expression :=
'(\d{2}:\d{2}:\d{2}:\d{2}) (\d{2}:\d{2}:\d{2}:\d{2}) .*?([ -_A-Z]+.MP3)';
if r.Exec(Memo1.Text ) then
begin
repeat
tc := ListView1.Items.Add;
tc.Text := r.Match[3];
until not r.ExecNext;
end;

end;
Посмотреть вложение 284
beerbomj
 
Вверх Снизу