A raíz de unos comentarios de kiko me puse a investigar cómo podría vaciarse una sección de un archivo INI, es decir, no eliminarse por completo, sino eliminar sólo sus claves y valores correspondientes.

El caso es que mientras llevaba a cabo el algoritmo en Delphi para conseguir algo así, me he dado cuenta de que estaba usando las mismas funciones que en su día incorporé a NeoDouble en las correspondientes acciones.

Es decir, que el plugin ya cuenta con las acciones necesarias para conseguir "vaciar" una sección de un archivo INI. Ahora la duda estaría en si incluir o no una acción "npVaciarSeccion" en el plugin NeoDouble, pero, como digo, básicamente, sería traducir el siguiente código de Neobook a Delphi:

.// Nombre de la sección a vaciar
 
SetVar "[SeccionINI]" "Seccion"
 
.// Vamos a obtener todas las claves de la sección
 
npSeccionIni "archivo.ini" "[SeccionINI]"
 
.// Véase más abajo en esta entrada sobre estas líneas
 
GetArrayInfo "[npResultadoAccion]" "[menor]" "[mayor]" ""
Loop "[menor]" "[mayor]" "[indice]"
  SetVar "[Claves[indice]]" "[npResultadoAccion[indice]]"
EndLoop
 
.// Ahora sí, recorremos el Array de claves
 
GetArrayInfo "[Claves]" "[menor]" "[mayor]" ""
Loop "[menor]" "[mayor]" "[indice]"
  .// Y vamos borrando una a una las claves de la sección
 
  npBorrarClaveIni "archivo.ini" "[SeccionINI]" "[Claves[indice]]"
EndLoop

Por cierto, ¿alguien sabe cómo asignar a una variable el valor de otra variable de tipo Array? Haciendo esto:

SetVar "[NuevaVariable]" "[VariableArray]"

El asunto no parece funcionar como se espera, de modo que ha de hacerse algo como lo que se ve más arriba, asignar los elementos de la variable Array a la otra variable, de uno en uno...

GetArrayInfo "[VariableArray]" "[menor]" "[mayor]" ""
Loop "[menor]" "[mayor]" "[indice]"
  SetVar "[NuevaVariable[indice]]" "[VariableArray[indice]]"
EndLoop

Pero, estoy seguro de que tiene que haber otro modo, ¿verdad? En fin. Espero que kiko se entere de que puede vaciar secciones de archivos INI ya, es decir, sin esperar a que NeoDouble incorpore más acciones, con las que ya existen en el plugin.

En definitiva, se trata de obtener todas las claves de una determinada sección, para, a continuación, borrar las claves una por una, de manera que no se borre la sección, puesto que, si es esto lo que se quiere conseguir, podría usarse la acción "npBorrarSeccionIni", directamente.