![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#21
|
|||
|
|||
|
no hace falta que me trates de usted
. probablemente es que no se graba el archivo
si, ejecutando el programa, no te aparece este showmessage, es que no se entra. Quiza sea entonces que los marcadores estan incorrectos (ten en cuenta que '*Inicio' es distinto de '*inicio') |
|
#22
|
|||
|
|||
|
¿puedes poner el codigo de la funcion?
|
|
#23
|
||||
|
||||
|
Si ya coloque los marcadores que son correcos y he ahi donde me sale la excecion Sr Coso si quiere le mando el archivo problema y ahi usted vera que es lo que pasa.... pues el codigo que tengo es el mismo que me han sugerido solo con algunas modificaciones
|
|
#24
|
|||
|
|||
|
no no, ponlo aqui enganchado, en un mensaje, por si a alguien luego le sale el mismo error...
|
|
#25
|
||||
|
||||
|
ok, este es la excepcion...
Project gid_1.exe raised excepcion class EStringlistError with message 'List Index out of bounds (3006)'. Process stopped. Use step or run to continue... |
|
#26
|
|||
|
|||
|
no, la excepcion no, el codigo
|
|
#27
|
||||
|
||||
|
A ok .
unit gid1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) OpenDialog1: TOpenDialog; Button1: TButton; Button2: TButton; Button3: TButton; Edit1: TEdit; Button4: TButton; procedure Button3Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button4Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; slfile: tstringlist; slfilenuevo:tstringlist; filename:string; Numerofile:integer; flginicio,flgfin: boolean; nombre:string; implementation {$R *.dfm} procedure TForm1.Button3Click(Sender: TObject); begin Application.Terminate; end; procedure TForm1.Button1Click(Sender: TObject); begin slfile:=tstringlist.create; slfilenuevo:=tstringlist.create; if opendialog1.execute then begin filename:=opendialog1.filename; slfile.loadfromfile(filename); end; end; procedure TForm1.Button2Click(Sender: TObject); var i: integer; begin flginicio:=false; flgfin:= false; numerofile:=1; for i:=0 to slfile.count - 1 do begin if slfile[i]= '*Node' then flginicio:=true; if slfile[i]= '*Element' then flgfin:=true; if (flgInicio=True) and (flgFin=False) then slFileNuevo.Add(slFile[i+1]); if flgFin=True then begin showmessage(' Holaaaaa '); slFileNuevo.SaveToFile(nombre+'.bas'); flgInicio := False; flgFin := False; Inc(NumeroFile); end; end; end; procedure TForm1.Button4Click(Sender: TObject); begin nombre:= edit1.Text; end; end. |
|
#28
|
|||
|
|||
|
puedes ajuntar tambien el archivo de datos? es secuencial de texto no? yo en principio no le veo ningun fallo (liberar las tstringlist, como mucho)...
(excepto lo comentado antes para no incluir el '*Fin'...) Supongo que pulsaras primero el 1, luego el 4, luego el 2 y finalmente el 3Última edición por coso fecha: 13-07-2008 a las 23:03:55. |
|
#29
|
||||
|
||||
|
es que el archivo es muy largo si quiere me da su mail y se lo mando por correo, no creo que quepa por aqui de verdad
|
|
#30
|
|||
|
|||
|
#31
|
|||
|
|||
|
si, ya se lo que te ocurre. La linea con el marcador de final no es '*Element', es *Element, type=C3D4', por lo que sigue corriendo hasta llegar al final. La excepcion te debe venir probablemente por pasarte de largo en el numero de lineas (en la linea slFileNuevo.Add(slFile[i+1]), probablemente). Otro detalle, el 1 no esta en la primera columna, sino que aparece ' 1, ...'
por lo tanto : deberas canviar el if slFile[i] = '*Element' por if Pos(slFile[i],'*Element') <> 0 y el slFileNuevo.Add( añadir slFileNuevo.Add(Trim(strscan(PChar(TrimLeft(slFile[i]),',')) . Fijate, a más, en los posts anteriores que se comenta sobre el continue. saludos |
|
#32
|
||||
|
||||
|
Sr. Coso modifique todo lo que ud sugirio ya no me sale la excepcion pero el archivo no me lo guarada como antes
|
|
#33
|
|||
|
|||
|
y lo del hola te sale??
|
|
#34
|
|||
|
|||
|
perdon, al reves : Pos('*Element',slFile[i])
altas horas ya por aqui |
|
#35
|
||||
|
||||
|
Buerno disculpe la molestia de verdad que verguenza con usted es que esto ya me tiene de cabeza, le acabo de modificar el pos, y ni me graba el archivo ni me sale el mensaje hola...
begin flginicio:=false; flgfin:= false; numerofile:=1; for i:=0 to slfile.count - 1 do begin if slfile[i]= '*Node' then flginicio:=true; continue; if Pos('*Element, type=C3D4',slFile[i]) <> 0 then flgfin:=true; continue; showmessage(' Holaaaaa '); if (flgInicio=True) and (flgFin=False) then slFileNuevo.Add(slFile[i]); if flgFin=True then begin slFileNuevo.Add(Trim(strscan(PChar(TrimLeft(slFile[i])),','))); slFileNuevo.SaveToFile(nombre+'.bas'); flgInicio := False; flgFin := False; Inc(NumeroFile); end; end; end; |
|
#36
|
|||
|
|||
|
no, if Pos('*Element',slFile[i]) <> 0...
|
|
#37
|
||||
|
||||
|
nada no me guarda el archivo
|
|
#38
|
|||
|
|||
es raro, el codigo anterior parecia que no tuviese ningun error. Mañana le echare un vistazo. Este funciona. Última edición por coso fecha: 14-07-2008 a las 00:01:36. |
|
#39
|
||||
|
||||
|
Muchas gracias Sr Coso ahora con este codigo si me guarda lo que espero
|
![]() |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Ayuda: Necesito refrescar la aplicación MIENTRAS se copian archivos muy grandes | Black_Ocean | Varios | 7 | 10-04-2008 21:07:51 |
| Necesito ayuda para recuperar unos archivos | ddd_ddd | Varios | 2 | 24-10-2007 15:49:26 |
| Manejo de archivos binarios en Delphi | rodrigo19 | Varios | 6 | 26-05-2007 02:36:52 |
| Necesito ayuda con indices .ndx para archivos dbf | dinover7 | Conexión con bases de datos | 1 | 21-05-2007 21:41:34 |
| Necesito ayuda para manerjar archivos | meosre | Varios | 2 | 08-09-2005 18:37:34 |
|