Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

Удаления пробелов в строке.   Найти похожие ветки 

 
aka   (2012-06-27 11:09) [0]

Как будет быстрее:

1)

procedure TForm1.Button1Click(Sender: TObject);
var
 str, rez : String;
 i,k: Integer;
begin
 k := 0;
 str := "q w er t  y   try"+#13+"as df"+#13+"z x c v";
 SetLength(rez, Length(str));

 for i := 1 to Length(str) do
 if ((str[i] in ["a".."z", "A".."Z", "0".."9"])) then
   rez[i-k] := str[i]
 else
   Inc(k);

 SetLength(rez, Length(rez)-k);
end;


или

2)


procedure TForm1.Button1Click(Sender: TObject);
var
 str, rez : String;
 i,k: Integer;
begin
 str := "q w er t  y   try"+#13+"as df"+#13+"z x c v";

 for i := 1 to Length(str) do
 if ((str[i] in ["a".."z", "A".."Z", "0".."9"])) then
   rez := rez + str[i];

end;


 
AV ©   (2012-06-27 11:20) [1]

как быстрее - можно замерить самому
а понятнее будет юзать StrUtils.ReplaceString


 
AV ©   (2012-06-27 11:24) [2]

т.е. StringReplace

uses StrUtils;

procedure TForm1.Button1Click(Sender: TObject);
var
 str: string;
begin
 str := "q w er t  y   try"+#13+"as df"+#13+"z x c v";
 ShowMessage( StringReplace(str," ","",[rfReplaceAll]) );


 
Anatoly Podgoretsky ©   (2012-06-27 11:53) [3]

> aka  (27.06.2012 11:09:00)  [0]

Ты просишь нам измерить


 
Anatoly Podgoretsky ©   (2012-06-27 11:54) [4]

> aka  (27.06.2012 11:09:00)  [0]

И обе функции работают не так как заявлено.


 
Омлет ©   (2012-06-27 12:36) [5]

> aka   (27.06.12 11:09)

К гадалке не ходи - ясно, что с предварительным выделением памяти быстрее.
А ещё можно "пробелы" вырезать грубо, вместе со всеми служебными символами (< #33):

function StripSpasesAndSpecChars(const s: AnsiString): AnsiString;
var
 i, n: integer;
begin
 n := 0;
 SetLength(Result, Length(s));
 for i := 1 to Length(s) do
 begin
   if PByte(@s[i])^ > 32 then
   begin
     inc(n);
     PByte(@Result[n])^ := PByte(@s[i])^;
   end;
 end;
 SetLength(Result, n);
end;


 
Омлет ©   (2012-06-27 12:42) [6]

А можно вообще не выделять доп. память, если есть возможность модифицировать исходную.



Страницы: 1 вся ветка

Текущий архив: 2013.03.22;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.087 c
15-1351694777
Handler
2012-10-31 18:46
2013.03.22
как будет на английском


10-1180345824
лесник
2007-05-28 13:50
2013.03.22
ms word


15-1347565047
Artem
2012-09-13 23:37
2013.03.22
Сегодня выбрал тему дипломный работы.


15-1328614093
Denissoft
2012-02-07 15:28
2013.03.22
Вопрос Насчет сайта!


2-1329332051
Zheksonz
2012-02-15 22:54
2013.03.22
Быстрое сохранение параметров в файл