Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Удаление строк в каторых меньше 30 символов


Автор: BeeMaster 21.6.2008, 16:04
Всем привет. Помогите пожалуйста с написанием скрипта каторый бы удалял бы из MEMO строки короче 30 символов.

Есть наподобие этого скрипт но он заменяет пробелы на энтер.

Код

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
r:array of integer;
begin
SetLength(r,Memo1.Lines.Count+1);
for i:=0 to High(r)-1 do
Memo1.Lines[i] := StringReplace(Memo1.Lines[i], ' ', sLineBreak, [rfReplaceAll]);
end;


end.


Я просто не знаю как найти эти строки и их удалить. Помогите пожалуйсто исходником.

Автор: Rrader 21.6.2008, 16:12
Код

procedure TForm1.Button1Click(Sender: TObject);
var
  List: TStringList;
  I: Integer;
  S: String;
begin
  List := TStringList.Create;
  try
    for I := 0 to Memo1.Lines.Count - 1 do
    begin
      S := Memo1.Lines[I];
      if Length(S) >= 30 then List.Add(S);
    end;
    Memo1.Lines.Assign(List);
  finally
    List.Free;
  end;
end;

Автор: Qu1nt 21.6.2008, 16:17
Код

procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
begin
  with Memo1.Lines do
    for i := Count - 1 downto 0 do
      if Length(Strings[i]) < 30 then
        Delete(i);
end;

Автор: BeeMaster 21.6.2008, 18:04
Rrader,   огромный респект!!!

Qu1nt, У тебя скрипт если чистит большой текст то зависает комп. ОЧЕНЬ ОЧЕНЬ медленно чистит по сравнению с Rrader

Автор: MetalFan 21.6.2008, 18:42
сделай TMemo.Lines.BeginUpdate/EndUpdate в начале/конце операции.

Автор: ne0n 21.6.2008, 19:20
 smile 
Цитата(BeeMaster @  21.6.2008,  18:04 Найти цитируемый пост)
 У тебя скрипт

скрипт.... smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)