Ver Mensaje Individual
  #5  
Antiguo 03-10-2006
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - Espańa
Posts: 18.275
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Un ejemplo usando TStrings sería este:

Código Delphi [-]
procedure Modificar2(FileName:String; StrOrig, StrNueva:string);
var
  TS:TStrings;
  i:Integer;
  encontrada:Boolean;
begin

  // ini
  TS := TStringList.Create();
  i := 0;
  encontrada := False;

  // Proteccion para liberar
  try

    // Cargar el fichero
    TS.LoadFromFile(FileName);
    // recorrido para buscar
    while (i <= TS.Count - 1) do begin

      // encontrada?
      if AnsiContainsStr(StrOrig, TS.Strings[i]) then begin
        // Cambiarla
        TS.Strings[i] := StrNueva;
        encontrada := True;

        // Si sólo quieres buscar 1 línea que coincida descomenta la siguiente línea
        i := TS.Count;
      end;
      // Siguiente línea
      i := i + 1;
    end;

    // Se ha encontrado y modificado? ==> Cabiamos
    if (encontrada) then begin
      TS.SaveToFile(FileName);
    end;

  finally
    FreeAndNil(TS);
  end;
end;

Si le pasas el nombre del fichero, la cadena a buscar y la nueva, te sustituirá 1 o varias ocurrencias de esa cadena. Para ficheros muy grandes no creo que sea la forma más optima, pero para ficheros normales no creo que se note la deferencia.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita