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 25-01-2005
Nanoman Nanoman is offline
Registrado
 
Registrado: ene 2005
Posts: 4
Poder: 0
Nanoman Va por buen camino
Question Edicion de archivos Texto desde el inicio

Saludos soy nuevo en esto de delphi, he buscado en el foro y aun no consigo informacion al respecto... les presento el problema

Necesito editar un archivo de texto, el archivo es de extensión .sty, sin embargo lo abro con block de notas y aparece el archivo de configuración que deseo editar..

ahora las condiciones son:

1. no deseo que los usuarios puedan ellos abrir con block de notas el archivo, por eso no he referenciado la extensión a block de notas.

2. mi intención es que puedan quitar o añadir solo algunos lineas especificas

3. se necesitaria posicionarse tambien en un caracter especifico y completar la linea, ademas de tambien insertar algun texto.

4. deseo que la interfase con los usuarios este compuesta con controles Tedit checkbox y radiobutton que ellos puedan seleccionar o llenar y que luego al darle aceptar se salven las modificaciones...

Requiero de ustedes una orientación hacia que puedo leer, ejemplos, teoria al respecto.. no se por donde empezar

Muchas gracias de antemano
Responder Con Cita
  #2  
Antiguo 25-01-2005
Nanoman Nanoman is offline
Registrado
 
Registrado: ene 2005
Posts: 4
Poder: 0
Nanoman Va por buen camino
Olvide comentarles que una vez hace unos cuantos años trabaje con archivos texto desde pascal pero he perdido toda la documentación.

por cierto el archivo texto no necesita cambio de formato ni letras sólo edición de texto plano linea a linea y caracter a caracter

Muchas gracias
Responder Con Cita
  #3  
Antiguo 25-01-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Lo que deseas hacer parece ser un modelo de cartas tipo. Para no liarte mucho te propongo algo simple.

En una ventana pones un TMemo y en su propiedad Lines, escribe el siguiente texto:
Cita:
Estimado Señor %s :

Su %s está siendo revisada. En %s dias hábilies recibirá contestación.
Lógicamente los "%s" se sustituye por lo que pongas en el Tedit o en las opciones de tu programa.

Como se haría???

Pues muy facil, aqui tienes un pequeño ejemplo:
Necesitas un Tedit, un boton y un Tmemo
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var CartaFinal:TStringList;
begin
  CartaFinal := TStringList.Create; // creamos la carta oculta
try
  // formateamos el modelo que está en el Tmemo y lo copiamos a CartaFinal
  CartaFinal.text := Format(Memo1.Text,[
                 Edit1.text,
                 'Factura 0000/3333',
                  IntToStr(34)]);
// para ver los cambios en pantalla
  Memo1.Text:= CartaFinal.Text; 

// Guardamos la carta final con extension de bloc de notas
// La carta final si la puede abrir el usuario.
  CartaFinal.SaveToFile('c:\Modelo01 dirigido a '+ Edit1.text+'.txt );
finally
  CartaFinal.Free; // liberamos la memoria
end;

end;

end.

Por supuesto este es un ejemplo muy tosco, tendrás que retocarlo bastante, pero es una idea.

Como ves, los elementos que he usado son Tmemo, Tstringlist, la funcion Format de la unidad SysUtils de Delphi y poco más, pero con eso ya tienes tus objetivos cumplidos.

Saludos
Responder Con Cita
  #4  
Antiguo 25-01-2005
Nanoman Nanoman is offline
Registrado
 
Registrado: ene 2005
Posts: 4
Poder: 0
Nanoman Va por buen camino
Question

Muchas gracias, ahora el asunto es que el archivo ya esta creado necesito abrirlo y editarlo y no podría ponerle las marcas %s (lo de los tedit) al archivo desde un principio xq no funcionaría el programa que se configura con este archivo..

con lo que me dices se me ocurrio fue esto.. cargar el archivo .. buscar la linea insertarle los %s a los que te refieres y luego seguir con el proceso que mencionas

se puede buscar textos en el archivo?? hay otra forma mas facil?

para buscar la linea pense en contarla y usar su nro para modificarla pero tambien ocurre que es necesarió insertar líneas al archivo y entonces se perderia la cuenta

para ejemplificar un poco tengo una línea

CONFIG TITLEBANT ( ) // entre ( ) va ADISPA ADISCA XOMP

pero sucede que tambien es posible que no se coloque nada entre parentesis pero en ese caso necesitaria insertar a la linea dos $ adelante

$$CONFIG TITLEBANT

y asi quedaria

el otro caso sería ejemplo
.....
TRUSH 12546
SIMPLE TASKING
ALIAS DUQUE
MULTIFORCE
...

y se necesitaria insertar la linea ALIAS NANO o más de una línea dependiendo de los usuarios que se agreguen, entre las lineas ALIAS DUQUE y MULTIFORCE


Gracias agradezco su ayuda
Responder Con Cita
  #5  
Antiguo 25-01-2005
Avatar de Héctor Randolph
[Héctor Randolph] Héctor Randolph is offline
Miembro Premium
 
Registrado: dic 2004
Posts: 882
Poder: 20
Héctor Randolph Va por buen camino
Sugerencia

Hola nanoman!

Me parece que lo que tú buscas es un parser, es decir un algoritmo que identifica palabras o elementos del texto (tokens) y las descompone para después interpretarlas.

Te recomiendo que busques en el foro información con la palabra clave parser

Por ejemplo: lee este hilo tal vez sirva de algo.

http://www.clubdelphi.com/foros/showthread.php?t=4996

Un Saludo.
Responder Con Cita
  #6  
Antiguo 26-01-2005
Nanoman Nanoman is offline
Registrado
 
Registrado: ene 2005
Posts: 4
Poder: 0
Nanoman Va por buen camino
Thumbs up He avanzado

ok he logrado cargar el archivo y pienso usar la función copy para ir armando la linea de configuración ya he hecho algunas pruebas.

ahora tengo otro problema.

como busco en el archivo (lo abrí dentro de un tipo tstringlist) por ejemplo la palabra CINFG en todas las lineas?? necesito buscar todas aquellas lineas que tengan esa palabra incluida..

agradecido por su ayuda
Responder Con Cita
  #7  
Antiguo 26-01-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
usa un bucle for por el stringList y la funcion Pos para saber en que caracter de la linea empieza la palabra.

saludos
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


La franja horaria es GMT +2. Ahora son las 04:48:22.


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