Ver Mensaje Individual
  #6  
Antiguo 22-01-2009
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Reputación: 22
Caro Va por buen camino
Cita:
Empezado por agustibaldo Ver Mensaje
Desde ya, muchas gracias por sus respuestas.

[coso] he probado lo que me pasaste y funciona de maravillas.

Pero todavía me queda una duda: al realizarlo de la manera que planteas no estoy reemplazando todos las cadenas que comiencen con '22.150' en el total del texto? Porque de ser así, esto no cumpliría con lo que necesita que es, precisamente, reemplazar el texto antes mencionado pero dandole una posición (del 118 al 123) linea por linea.

Me parece que en este caso, sería mejor usar la función copy, la cual puede asignarle la posición a cambiar. Pero la pregunta es: como hago para recorrer linea por linea?

En fin, espero haber sido claro con mi explicación, caso contrario no duden en consultarme.

Nuevamente, muchas gracias por sus respuestas.
Hola, haciendo así directo si te va ha reemplazar todo, para recorrer línea lía solo es recorrer el StrinList y paar buscar desde una posición determinada y ver si existe puedes utilizar PosEx y paar reemplazar el StringReplace sin opciones en el ultimo parametro solo para que te reemplace la primera ocurrencia.

Mas o menos tu codigo quedaría así:
Código Delphi [-]
 sl:= TStringList.Create;
 .......................
 for i:=0 to sl.count-1 do
  begin  
   Ind := PosEx(sl[i], '21.250', 117); 
   if Ind > 0 then
    begin
     StrIzq := Copy(sl[i], 1, Ind-1);
     StrDer := Copy(sl[i], Ind, Length(sl[i]));

     StrDer := StringReplace(StrDer,'21.250','22.250 ',[]);
 
    sl[i] := strIzq+' '+StrDer;
    end;
  end;

Así sería mas o menos, hay varias formas de hacerlo, esa es una.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita