![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
|
Hola,
Estoy haciendo un programa donde necesito almacenar datos que contengan una parte de texto y una parte para números enteros. Para ello, he definido un fichero de datos de la siguiente forma: type TReg = record Txt: TextFile; num: Integer; end; var FileReg: File of TReg; Reg: TReg; Para estudiarlo, he creado un formulario de prueba que contiene un Memo y dos botones. La idea es: introducir una cadena en el Memo, guardarla (presionando el botón btnGuardar) y después ver lo que se ha almacenado (presionando el botón btnVer). El problema es que si se introducen grandes cadenas, sólo muestra en el Memo el final de dichas cadenas, las parte y no las muestra enteras. No sé qué es lo que está mal, y el por qué hace esto. Los procedimientos que he empleado son: procedure TForm1.btnGuardarClick(Sender: TObject); var i: Integer; begin AssignFile(FileReg, 'C:\T.dat'); ReWrite(FileReg); AssignFile(Reg.Txt, 'C:\R.txt'); ReWrite(Reg.Txt); Reg.num:= 0; for i:= 0 to (Memo1.Lines.Count - 1) do begin Write(Reg.Txt, Memo1.lines[i]); end; Seek(FileReg,0); Write(FileReg,Reg); Memo1.Lines.Clear; CloseFile(Reg.Txt); CloseFile(FileReg); end; procedure TForm1.btnVerClick(Sender: TObject); var buffer: string; begin AssignFile(FileReg, 'C:\T.dat'); Reset(FileReg); AssignFile(Reg.Txt, 'C:\R.txt'); ReWrite(Reg.Txt); Seek(FileReg,0); Read(FileReg, Reg); Reset(Reg.Txt); while not Eof(Reg.Txt) do begin Read(Reg.Txt, buffer); Memo1.lines.Add(buffer); end; CloseFile(Reg.Txt); Erase(Reg.Txt); CloseFile(FileReg); Erase(FileReg); end; Estoy comenzando en esto de la programación en Delphi y sé que lo normal es emplear estructuras del tipo: type TReg = record Txt: string[20]; num: Integer; end; var FileReg: File of TReg; Reg: TReg; pero en mi caso no puedo emplear esto porque las cadenas a almacenar es muy posible que superen los 255 caracteres. Si alguien puede darme alguna pista sobre lo que estoy haciendo mal, lo agradecería mucho. Gracias de antemano por atender mi petición. |
|
|
|