
08.10.2013, 20:25
|
 |
Начинающий
|
|
Регистрация: 09.11.2011
Адрес: Москва
Сообщения: 144
Версия Delphi: XE2
Репутация: 11216
|
|
Выбирайте
Код:
function hfs(ds: string): string;
var
i: integer;
s: string;
flg: boolean;
begin
s:= '';
flg:= false;
for i := 1 to Length(ds) do
begin
s:= s + ds[i];
if ds[i] = ' ' then
begin
if flg then Result:= Result+ s[1] + '.' else Result:= s;
s:= '';
flg:= true;
end;
if (flg) and (i = Length(ds)) then Result:= Result + s[1] + '.';
end;
end;
Код:
function hfs(ds: string): string;
var
i: integer;
begin
i:= Pos(' ', ds);
if i > 0 then
begin
Result:= Copy(ds, 1, i);
i:= PosEx(' ', ds, i);
Result:= Result + Copy(ds, i+1, 1) + '.';
i:= PosEx(' ', ds, i);
Result:= Result + Copy(ds, i+1, 1) + '.';
end else
Result:= ds;
end;
Код:
function hfs(ds: string): string;
var
sl: TStrings;
begin
sl:= TStringList.Create;
sl.Delimiter:= ' ';
sl.DelimitedText:= ds;
if sl.Count > 0 then
Result:= sl.Strings[0] + ' ' + sl.Strings[1][1] + '.' + sl.Strings[2][1] + '.'
else
Result:= ds;
sl.Free;
end;
Holy fucking shit...
Добавлено значительно позже
Цитата:
Сообщение от M.A.D.M.A.N.
...В общем нужно бежать по строке (со n-го символа (n>1)) и копировать заглавные буквы...
|
Реализация
Код:
function hfs(ds: string): string;
var
i: integer;
flg: boolean;
begin
flg:= true;
for i := 1 to Length(ds) do
begin
if ds[i] = ' ' then
begin
if flg then
Result:= Result + ' ';
flg:= false;
end;
if flg then
Result:= Result + ds[i];
if (not flg) and (ds[i] in ['А'..'Я']) then
Result:= Result + ds[i] + '.';
end;
end;
4250
__________________
Помогаю платно.
Помогаю иногда бесплатно.
|