Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-05-2011
McK McK is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 33
Poder: 0
McK Va por buen camino
Cambiar nombre a sección de un INIFile

Hola compadres,

Quiero cambiar solo el nombre a una sección de un INIFile y os quería preguntar cual es la forma más sencilla y eficaz de hacerlo.

Lo más eficaz que se me ha ocurrido a mí es volcar el contenido del archivo en un memo. Buscar el nombre de la sección, cambiarlo y guardar. Seguramente me podáis ayudar a mejorarlo.

Un saludo!
Responder Con Cita
  #2  
Antiguo 16-05-2011
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Creo que esa es la forma más fácil.

Otra manera sería leer todas las propiedades de una sección y escribirlas en la nueva sección.

Más o menos así:
Código Delphi [-]
OldSection, NewSection : string;
Claves, Valores : TStrings;

ReadSection(OldSection, Claves);
ReadSectionValues(OldSection, Valores);
for i := 0 to Claves.Count -1 do
   WriteString(NewSection, Claves[i], Valores[i]);
Responder Con Cita
  #3  
Antiguo 16-05-2011
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola McK, es la misma idea que te ha dado duosiloa, crearte una nueva sección y despues borrar la que tenias antes.

Código Delphi [-]
  IniFile.ReadSections(Secciones);
  Ind := Secciones.IndexOf('SeccionACambiar');
  if Ind<>-1 then
   begin
    IniFile.ReadSection(Secciones[Ind], Claves);
    for i:=0 to Claves.Count-1 do
     begin
      Valor := IniFile.ReadString(Secciones[Ind], Claves[i],'');
      IniFile.WriteString('NuevaSeccion', Claves[i], Valor);
     end;
    IniFile.EraseSection(Secciones[Ind]);
   end;

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
  #4  
Antiguo 16-05-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
También puedes abrir el fichero con el bloc de notas y cambiarle a mano el nombre
Responder Con Cita
  #5  
Antiguo 17-05-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Otra opción no muy complicada es hacerte un procedimiento para cambiar nombres de secciones:
Código Delphi [-]
procedure CambiarNombreSeccion(const RutaNombre, Viejo, Nuevo: string);
var
  TS: TStrings;
  i : Integer;
begin
  TS:= TStringList.Create;
  try
    TS.LoadFromFile(RutaNombre);
    for i:= 0 to ts.Count -1 do
      if Pos(Viejo,'[' + TS[i] + ']') > 0 then
        TS[i]:= '[' + Nuevo + ']';
    TS.SaveToFile(RutaNombre);
  finally
    TS.Free;
  end;
end;

Por ejemplo para llamarlo:
Código Delphi [-]
CambiarNombreSeccion('C:\TEMPORAL\MiArchivoIni.INI','INFO','INFORMACION');

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 17-05-2011 a las 13:15:56.
Responder Con Cita
  #6  
Antiguo 18-05-2011
McK McK is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 33
Poder: 0
McK Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Otra opción no muy complicada es hacerte un procedimiento para cambiar nombres de secciones:
Código Delphi [-]
procedure CambiarNombreSeccion(const RutaNombre, Viejo, Nuevo: string);
var
  TS: TStrings;
  i : Integer;
begin
  TS:= TStringList.Create;
  try
    TS.LoadFromFile(RutaNombre);
    for i:= 0 to ts.Count -1 do
      if Pos(Viejo,'[' + TS[i] + ']') > 0 then
        TS[i]:= '[' + Nuevo + ']';
    TS.SaveToFile(RutaNombre);
  finally
    TS.Free;
  end;
end;

Por ejemplo para llamarlo:
Código Delphi [-]
CambiarNombreSeccion('C:\TEMPORAL\MiArchivoIni.INI','INFO','INFORMACION');

Saludos.
Gracias a todos y perdón por la tardanza!!

Al final he hecho algo muy similar a lo que ha puesto ecfisa. Lo del bloc de notas no era una opción porque tenía que cambiar unas 1000 xDDD

Gracias de nuevo!
Responder Con Cita
Respuesta



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
Como Config un inifile para mysql chino150 Varios 2 02-03-2009 17:56:07
cambiar nombre UREÑA Conexión con bases de datos 3 03-05-2007 21:27:27
Cambiar el Nombre de FTP Caral Internet 2 05-02-2007 17:10:01
Averiguar nombre de unidad para la sección uses akinom38 Varios 6 19-01-2006 17:26:02
Como puedo cambiar un Hilo de una seccion a otra??? RONPABLO Varios 2 17-11-2005 21:29:29


La franja horaria es GMT +2. Ahora son las 11:02:13.


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