![]() |
![]() |
![]() |
![]() |
![]() |
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
![]()
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)...
![]() Ú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])
![]() |
#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
|
![]() |
|
|
![]() |
||||
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 |
![]() |
|