Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Удаление всех пробелов из строки? [D7]


-Gruo- ©   (2006-09-30 01:39:00) 

Привет!! Подскажите как удалить все пробелы из строки?


Джо   (2006-09-30 12:05:00) [1]

> [4] Leonid Troyanovsky ©   (30.09.06 11:35)
> Для экономии, IMHO, procedure StripSpaces(var s: String)
> .

Именно так. Зависит, конечно, от требования к конкретному интерфейсу, предоставляемому функцией/процедурой.


Leonid Troyanovsky   (2006-09-30 11:35:00) [2]


> Джо ©   (30.09.06 11:05) [3]

> Ну, или, экономя на реаллокациях, так:


Для экономии, IMHO, procedure StripSpaces(var s: String).

--
Regards, LVT.


Джо   (2006-09-30 11:05:00) [3]

А если "руками" и без использования громоздких механизмов, то как-то так:

function StripSpaces (const Source: string): string;
var
 I,J: Integer;
begin
 SetLength (Result,Length(Source));
 J := 1;
 for I := 1 to Length(Source) do
 begin
   if Source[I] <> ' ' then
   begin
     Result[J] := Source[I];
     Inc (J);
   end;
 end;
 SetLength (Result,J-1);
end;


Ну, или, экономя на реаллокациях, так:

function StripSpaces (const Source: string): string;
var
 I,J,Len: Integer;
begin
 // Precompute result length
 Len := 0;
 for I := 1 to Length(Source) do
   if Source[I] <> ' ' then
     Inc(Len);
 SetLength (Result,Len);

 J := 1;
 for I := 1 to Length(Source) do
 begin
   if Source[I] <> ' ' then
   begin
     Result[J] := Source[I];
     Inc (J);
   end;
 end;
end;


Германн   (2006-09-30 02:01:00) [4]

Чтобы было ещё нагляднее
St:=StringReplace(St,#32,'',[rfReplaceAll]);


Германн   (2006-09-30 01:55:00) [5]


> -Gruo-   (30.09.06 01:39)
>
> Привет!! Подскажите как удалить все пробелы из строки?


var St : String;
St:=StringReplace(St,' ','',[rfReplaceAll]);


Наверх

Титульная страница Поиск, карта сайта Написать письмо