Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-03-2022
jars jars is offline
Miembro
 
Registrado: mar 2004
Posts: 283
Poder: 23
jars Va por buen camino
Este es el codigo:

Código Delphi [-]
procedure UpdateParamsFile;
var
  sl: TStringList;
  lResCU: TServiceCustomAnswer;
  i: Integer;
  lsection: string;
  lvar, lvalue: string;
begin 
  lResCU.Status := 0;
  lResCU.Content := '';
  // este servicio me devuelve el contenido del inifile del servidor
  lResCU := ARService.FileService_GetContentFile('\MainUpd\ParmsUpdate.ini');
  if lResCU.Status <> 200 then
  begin
    Log('@E cannot get the ParmsUpdate.ini file: %s', [lResCU.Content]);
    ShowMessage('No se puedo obtener el archivo: '+lResCU.Content)
  end else
  begin
    // este es el inifile de las pc's
    inifile := TIniFile.Create('c:\WorkDir\Params.ini');
    sl := TStringList.Create;
    sl.Text := lResCU.Content;
    lsection := '';
    lvar := '';
    lvalue := '';
    for i := 0 to sl.Count-1 do
    begin
      if LeftStr(sl[i],1) = '[' then
        lsection := sl[i]
      else
      begin
        lvar := sl.Names[i];
        lvalue := sl.Values[sl.Names[i]];
      end;
      if (lsection <> '') and (lvar <> '') then
      begin
        inifile.WriteString(lsection, lvar, lvalue); // esta linea no actualiza nada en el inifile
        lvar := '';
        lvalue := '';
      end;
    end;
  end;
  sl.Free;
end;
Responder Con Cita
  #2  
Antiguo 23-03-2022
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: 19.441
Poder: 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
Siguiendo lo que te he comentado, con un procedimiento como este:

Código Delphi [-]
procedure UpdateValues(const APathIniOrigen, APathIniDestino:string);
var
  IniServidor, iniPC:TIniFile;
  secciones, valores:TStrings;
  i, j:integer;
begin
  IniServidor := TIniFile.Create(APathIniOrigen);
  iniPC := TIniFile.Create(APathIniDestino);
  secciones := TStringList.Create;
  valores := TStringList.Create;
  try
    // Cargar todas las secciones (nombres)
    IniServidor.ReadSections(Secciones);
    // recorrer las secciones...
    for i := 0 to (secciones.Count - 1) do begin
      // Leer los valores de cada sección
      IniServidor.ReadSectionValues(Secciones[i], valores);
      // recorer los valores de cada seccion
      for j := 0  to (Valores.Count - 1) do begin
        // Para cada valor actualizar con el del Servidor (si no existe lo creará, si existe lo actualiza)
        iniPC.WriteString(Secciones[i], valores.Names[j], valores.ValueFromIndex[j]);
      end;
    end;
    // Actualizar el fichero del PC
    iniPc.UpdateFile;
  finally
    IniServidor.Free;
    IniPC.Free;
  end;
end;

Si lo llamas de la siguiente manera:

Código Delphi [-]
UpdateValues('\MainUpd\ParmsUpdate.ini', 'c:\WorkDir\Params.ini');

El resultado será algo así (que creo que es lo que necesitas):

Código:
[seccion1]
var1=1
var2=2
var3=3

[seccion2]
var21=500
var22=2
var23=600

[seccion3]
var31=1000
var32=2
var33=3
__________________
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
  #3  
Antiguo 23-03-2022
jars jars is offline
Miembro
 
Registrado: mar 2004
Posts: 283
Poder: 23
jars Va por buen camino
German, es tal cual lo que necesitaba.
Muchas gracias
Responder Con Cita
  #4  
Antiguo 24-03-2022
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: 19.441
Poder: 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
Ya se que a veces cuesta hacerlo desde el inicio, pero una vez que has puesto los ejemplos y has explicado un poco mejor el problema, era fácil de entender y fácil de solucionar.


Por eso lo engo puesto...

__________________
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
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Actualizar una tablas desde un archivo de texto. rg5820 Firebird e Interbase 3 07-08-2018 10:18:30
Actualizar archivo marilinspi Varios 11 05-03-2009 15:43:25
Variables en Archivo _TLB Paulao Varios 0 15-07-2008 19:38:47
Actualizar Tabla con archivo .txt bohemioloco Conexión con bases de datos 1 07-11-2006 15:46:24
variables variables (manual php) salvica PHP 0 25-09-2005 16:44:52


La franja horaria es GMT +2. Ahora son las 22:17:26.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi