Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
ВнизУдаления пробелов в строке. Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.075 c