Eliminar espacios dobles.
Publicado por Diego Romero (996 intervenciones) el 03/12/2009 21:12:05
Esto es en respuesta a la cuestión planteada por juan entre otros sobre cómo eliminar espacios sobrantes en una cadena de caracteres (string).
Estás de suerte. Tengo tiempo para trastear un poco. Estaba casi seguro que ya había resuelto este detalle antes pero no encuentro el código así que lo volví a escribir en forma, digamos, sencilla.
function FormatearCadena(S: string):string;
var
i:integer;
result: string;
EsSpc: boolean;
begin
EsSpc:=true;
result:='';
for i:=1 to Length(S) do
begin
if S[i] = ' ' then
begin
if EsSpc = false then
begin
EsSpc:=true;
result:=result+S[i];
end { if }
end { then }
else
begin
EsSpc:=false;
result:=result+S[i];
end; { else }
end; { for }
if result[length(result)] = ' ' then
delete(result,length(result),1); { elimina cualquier espacio al final }
FormatearCadena:=result;
end;
Lo que hace esta función es tomar un string y devolverla sin espacios sobrantes dejando solo uno entre cada palabra y quitando los espacios por delante y por detrás del string.
Estás de suerte. Tengo tiempo para trastear un poco. Estaba casi seguro que ya había resuelto este detalle antes pero no encuentro el código así que lo volví a escribir en forma, digamos, sencilla.
function FormatearCadena(S: string):string;
var
i:integer;
result: string;
EsSpc: boolean;
begin
EsSpc:=true;
result:='';
for i:=1 to Length(S) do
begin
if S[i] = ' ' then
begin
if EsSpc = false then
begin
EsSpc:=true;
result:=result+S[i];
end { if }
end { then }
else
begin
EsSpc:=false;
result:=result+S[i];
end; { else }
end; { for }
if result[length(result)] = ' ' then
delete(result,length(result),1); { elimina cualquier espacio al final }
FormatearCadena:=result;
end;
Lo que hace esta función es tomar un string y devolverla sin espacios sobrantes dejando solo uno entre cada palabra y quitando los espacios por delante y por detrás del string.
Valora esta pregunta
0