FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Ayuda con edicion de archivo inno setup
Hola comunidad..
Necesito si me pueden dar una mano con la lectura y escritura en un archivo tipo txt. El archivo esta compuesto de la siguiente manera: Cita:
Agradezco cualquier mano que me puedan brindar. |
#2
|
||||
|
||||
Cita:
|
#3
|
|||
|
|||
Hola Agustin, gracias por responderme, lo que necesito es que cada vez que instale un area nueva, incremente los numeros en los dos lugares marcados y escriba el texto del area, como puse en el ejemplo, no se si se entiende? el dato title, Local, Active y Required son fijos pero no se como hacer que abra el archivo lea cual e el ultimo y agregue el numero incrementado a Area.134 y lo copie a layer.
[Area.134] --------------------------ESTE SERIA EL QUE TENGO QUE AGREGAR SUIGUIENDO EL ORDEN DE NUMEROS Title=SOb Local=AS\SOL Layer=134 --------------------------Y LO MISMO EN ESTE CASO QUE REPITE EL MISMO NUMERO DE AREA Active=TRUE Required=FALSE Gracias nuevamente por tu tiempo. |
#4
|
||||
|
||||
Bienvenido a clubdelphi, como siempre aconsejamos a los nuevos, no olvides leer nuestra guía de estilo, gracias por tu colaboración
|
#5
|
||||
|
||||
Hola walterk.
Si tenes la certeza de que las cadenas a buscar ('[Area.' y 'Layer=') siempre existirán en el archivo, podrías hacer: Ejemplo de uso:
Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 31-08-2015 a las 18:28:30. Razón: corregir caracter del código |
#6
|
||||
|
||||
Yo creo que sería más adecuado usar un TINIFile. Su método ReadSections devuelve la lista de secciones, por lo que no tendrás que ir adivinándolas. Luego ya puedes usar el resto de métodos para obtener, modificar, crear y/o eliminar valores y secciones.
|
#7
|
|||
|
|||
Hola gracias por tu respuesta y el trabajo que te has tomado en poner las imagenes, ahora te hago una consulta si es posible.
Tienes idea como incluir tu codigo en inno setup para que cumpla la funcion cuando instalo la zona deceada?. Gracias nuevamente por tu tiempo. |
#8
|
||||
|
||||
Cita:
Como dice Ñuño Martínez, seria mejor utilizar el TINIFile, pero también añadiria al princio del fichero para saber ciertas cosas de él, como saber el último registro que se ha añadido el último acceso y quién lo ha realizado, se puede poner más y más cosas, para saber más y mejor el contenido del fichero. Cita:
Un saludo.
__________________
Al hacer una consulta SQL, haz que los demás te entiendan y disfruten de ella, será tú reflejo de tú saber. |
#9
|
||||
|
||||
Hola olbeup.
Cita:
Cita:
Saludos Edito: Y si, definitivamente coincido con ustedes en la conveniencia de usar TIniFile en este caso.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 02-09-2015 a las 12:47:05. |
#10
|
||||
|
||||
Un ejemplo con TIniFiles:
Un saludo.
__________________
Al hacer una consulta SQL, haz que los demás te entiendan y disfruten de ella, será tú reflejo de tú saber. |
#11
|
||||
|
||||
Hola walterk.
olbeup te dió un muy buen ejemplo, pero ya escribí el código, así que te agrego otro En este se seleccióna el mayor número del valor de la sección "Area" y se añade otra sección con el valor incrementado (sigo en dudas si deseas agregar una nueva o modificar el valor de la existente). (*) Se podría simplificar con el método IndexOfName pero Delphi 7 carece de StrictDelimiter y toma el espacio como delimitador. Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#12
|
||||
|
||||
Tambien se puede usar XML, ClientDataSet, Json
Si se usa ClientDataSet no tendrias problemas de eficiencia de busquedas y ademas ganarias todas las caracteristicas de un TDataSet. Filtrado, ordenado, cursores, controles Data-Aware |
#13
|
|||
|
|||
Cita:
La idea es agregar siempre un area nueva y que se haga de forma automatica sin la necesidad de la intervencion del usuario que lo instale. Para que se entinda mejor, yo diseño el escenario en cuestion y con inno setup realizo la instalacion dentro del programa ubicando donde lo tienen instalado a traves del registro de windows(segun usuario, disco "C","D","E",etc).Los datos del escenario al crealo yo los tengo e iria ubicado en "Title=", pero lo que no se como hacer es que abra el archivo verifique cual es el ultimo area que existe en el archivo y agregue mi area incrementando el numero anterior +1 y tome de la variable desde inno setup si es posible para agregar la ubicacion de donde se intalo el escenario para poner ese dato en "Local=", los valores "Active=" y "Required=" van asi por default. Espero haber aclarado un poco el tema y de ser necesario agrego el codigo que realice en inno setup para aclarar mas el panorama. Saludos |
#14
|
||||
|
||||
Hola walterk.
Cita:
Resultado: Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#15
|
|||
|
|||
Cita:
|
#16
|
||||
|
||||
¿Qué maneras? ¿qué errores?
|
#17
|
|||
|
|||
Por ejemplo copie el codigo tal cual y el error que me tira es: uses IniFiles (Unknown identifier)
|
#18
|
||||
|
||||
¿Quiéres usar código delphi en innosetup? Hasta donde yo lo he usado, eso no se puede hacer.
|
#19
|
|||
|
|||
Cita:
Yo lo que hacia era: [INI] Filename: C:\Servicios\em\Scenery.CFG; Section: Area.1050; Key: Title; String: SA81 Puerto Cabra Corral; Flags: uninsdeleteentry uninsdeletesectionifempty; Filename: C:\Servicios\em\Scenery.CFG; Section: Area.1050; Key: Local; String: {code:GetDirName}\Addon Scenery\SA81 Puerto Cabra Corral; Flags: uninsdeleteentry; Filename: C:\Servicios\em\Scenery.CFG; Section: Area.1050; Key: Active; String: TRUE; Flags: uninsdeleteentry; Filename: C:\Servicios\em\Scenery.CFG; Section: Area.1050; Key: Required; String: FALSE; Flags: uninsdeleteentry; Filename: C:\Servicios\em\Scenery.CFG; Section: Area.1050; Key: Layer; String: 1050; Flags: uninsdeleteentry; El problema empezo en que hay sucursales que no tiene la misma cantidad de areas y al yo ingresarles un numero de identificacion fija sobrescribia un area ya instalada y el software tira error. |
#20
|
||||
|
||||
¿Qué error?
A ver, debes explicar EXACTAMENTE lo que quieres hacer, en todo su contexto, no somos adivinos, no vemos tu ordenador. Usa también los conceptos correctos, porque si quieres ejecutar un programa delphi desde innosetup, eso no es "usar código delphi" en innosetup. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
[Inno Setup] InnoExtractor, aplicación para desempaquetar instaladores de Inno Setup | NucleousXE | Varios | 4 | 28-10-2014 14:12:33 |
¿Cómo puedo editar archivo texto con inno setup? | to_to | Varios | 3 | 23-01-2014 14:59:22 |
ayuda con inno setup | elardk | Varios | 1 | 27-04-2012 01:46:19 |
Ayuda con Inno Setup | davezf | Varios | 10 | 16-03-2005 20:18:49 |
Problema Archivo .INI con Inno SetUp 5 | VRO | Varios | 6 | 12-01-2005 17:41:50 |
|