PDA

Ver la Versión Completa : Archivos ini - sin TInifiles


JXJ
29-12-2007, 17:57:22
hay algun componente o unidad, archivo pas,
para usar manegar y crear archivos ini.
sin que dicho componente, o archivo pas, haga uso de la unidad Tinifiles.


esto por que tengo entendido que la implementación tinifiles de delphi
esta basada, en el uso directo de una api de windos,
y que windows vista ya no va a dar soporte a los archivos ini
entonces, (no va a estar esa API)
ya no va a funcionar el programa que use archivos ini, aunque
en estas primeras versiones de vista, los ini files se pueden seguir usando.
pero dentro de los directorios especiales como el appdata.

busque en torry,net y otros lados pero todos usan o son extension
de Tinifiles. y yo quiero una implementación sin usar tinifiles.

Gracias

dec
29-12-2007, 18:06:32
Hola,

Pues algo he visto yo sobre eso... recuerdo algún componente que permitía escribir archivos INI "más grandes" de lo que permitía (quizás antaño) la clase "TIniFiles", pero, no recuerdo si usaba también esta clase para otros menesteres. Pero, en todo caso, ¿es seguro eso de Windows Vista? Sería un suicidio, en mi opinión, con la cantidad de programas que hacen uso de archivos INI... ¿qué harían estos programas? ¿Dejar de funcionar en Windows Vista? No sé, se me hace raro.

JXJ
29-12-2007, 18:59:14
microsoft, sugiere, usar, en su lugar archivos xml.

y pues mi duda es que si delphi usa tinfiles, basandose en una api de windows
mejor me armo mi propia clase o unidad o componente, para usar archivos ini
sin usar tinifiles

el asunto es que quiero hacer mi lenguaje de scripts tipo innosetup..
para hacer escripts, de este tipo


;Hara un respaldo de una base de datos y lo comprimira en zip
EsTiempo;HacerBackup;DirDestino=C:\backup;nombrearchivozip;miarchivo+timestamp

duilioisola
29-12-2007, 19:08:27
Yo utilizo los archivos INI en Vista sin problemas.
Creo que a lo que te refieres es a crear archivos INI en algunas carpetas que Vista tiene como "Solo lectura"


var
oini : TIniFile;
begin
oini := TInifile.Create('nombre.ini');
oini.WriteString('Cabecera','Detalle','Dato');
oini.Free;
end;


Si solo pones el nombre del fichero (sin el path) te creará el archivo en la carpeta del usuario de Windows.

En Win2K es C:\WINNT\nombre.ini
En WinXP es C:\Document and Settings\Ususario\Windows\nombre.ini
En Vista es C:\Users\Usuario\AppData\Local\VirtualStore\Windows\nombre.ini

JXJ
29-12-2007, 21:23:45
esas ubicaciones de directorio no me las sabia.

por ahora estor destripando, el innosetup en su codigo fuente.
bastante, lio es entenderle..mas por que no entiendo como toma
los scripts, de pascalscript, de remobjects, que pueden estar casi, casi
en cuaquier posicion del script , pero se implementan en la sección de script
y aparte hace una incrustación extraña del script en el codigo binario del instalador

gracias por ayudar

Lepe
29-12-2007, 22:52:58
Yo tengo funcionando un programa en Windows Vista con archivos .ini

No me ha dado problemas, mejor dicho, no le ha dado problemas a mi cliente porque me hubiese enterado :D.

Saludos

AzidRain
30-12-2007, 05:25:32
Los ini vienen de las versiones win 95 y 98. Posteriormente MS introdujo el dichoso registro para guardar los datos de configuración de los programas. Para lo cual Delphi también cuenta con componentes ad-hoc. Sin embargo los ini, por su simpleza son más fáciles de usar y sobre todo es muy sencillo de pasarlos de máquina a máquina, se pueden editar en notepad sin mayor problema y un usuario promedio puede entenderlos.

El uso de los inis nada tiene que ver con la API de windows ya que estos archivos son solo texto plano que no utilizan nada del SO. Delphi lo único que hace es parsear el archivo, obtener las claves, y llenar el Tinifile según se lo pidas. No pasa lo mismo con el registro el cual si tiene que utilizar rutinas de la API para su edición y modificación.

Precisamente ahí radica la potencia de los ini, muchos los seguimos usando porque funcionan sin importar que windows uses.

Por otro lado los archivos XML tienen la ventaja de poder usarse en otros SO y además poder editarse mas elegantemente...pero a últimas si solo son unas cuantas líneas no le veo caso.

Para soporte remoto siempre es mejor un ini que todo lo demás...basta que te manden el ini por mail, lo editas y lo regresas por el mismo medio pidiendo que lo pongan en el mismo lugar que el original...y eso por poner un ejemplo solamente...

seoane
30-12-2007, 12:57:01
Para los TIniFile delphi, en windows, utiliza las funciones de la API para manejar este tipo de archivos (WritePrivateProfileString, ReadPrivateProfileString, etc), pero como hace algunos años borland hizo un tímido intento por aproximarse a linux, se saco de la manga una nueva clase (TMemIniFile) para manejar archivos .ini sin necesidad de la API de windows.

Yo personalmente prefiero usar archivos, y no el regsitro, para guardar las configuraciones, no tienen porque ser .ini, pueden ser simple archivos de texto o .xml. Solo hay que tener en cuenta donde se guardan, por comodidad los solemos guardar en la propia carpeta del programa, pero esto puede dar problemas en cuantas de usuario limitadas, por eso es mejor guardarlos en el perfil de cada usuario, en las carpetas destinadas precisamente para este fin.