almacenamiento y lectura de archivos
Publicado por EDgar (1 intervención) el 21/11/2008 23:54:26
hola como estan
Soy nuevo en lo que a programacion en lenguaje delphi se refiere, y en la universidad nos pidieron hacer un programa al que se le tiene que poner los datos de un libro (para su clasificacion), este programa debe poder crear, almacenar y leer los archivos que creo.
bueno el programa cuenta con 6 label (codigo, autor, titulo,editorial,nº de ejemplares y precio)
y sus respectivos 6 edits, tambien tiene 5 buttons (crear archivo, guardar, nuevo, abrir y salir), un componente panel (donde se muestra el registro que se esta leyendo por ejem. registro 1 de 2 ) y dos speedbutton que supuestamente deberian cambiar el archivo que se esta leyendo para pasar a otro guardado (y mostrarlo), mi problema e ese, ya hice el programa que crea y lee archivos.
en lo que quisiera que me ayuden es en que este programa lea mas de un registro de libro guardado, ya que al abrir un registro solo me lee ese (registro 1 de 1) y el programa debe cambiar de libro cuando haces click en los speedbuttons ( < > ),(registro 1 de 4, 2 de 4)
si me ayudan se los agradeceria mucho.
el codigo del prgrama es:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls;
type
Tlibro=record
cod:string[8];
tit:string[30];
aut:string[30];
edi:string[20];
nej:word;
pre:real;
end;
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
Panel1: TPanel;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
Button1: TButton;
Button2: TButton;
Button3: TButton;
SALIR: TButton;
Button5: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure SALIRClick(Sender: TObject);
procedure Button5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
lib:Tlibro;
Fich:file of Tlibro;
NomArch:string;
implementation
{$R *.dfm}
procedure Actualiza;
begin
if not eof(fich) then
begin
read(fich,lib);
seek(fich,filepos(fich)-1);
with lib do
begin
form1.edit1.text:=cod;
form1.edit2.text:=tit;
form1.Edit3.Text:=aut;
form1.edit4.text:=edi;
form1.edit5.text:=inttostr(nej);
form1.edit6.text:=floattostr(pre);
end;
form1.Panel1.caption:='Registro '+inttostr(filepos(fich)+1)+'de '+inttostr(filesize(fich));
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
NomArch:string;
begin
Savedialog1.filter:='Archivos de datos(*.dat)|*.dat|Todos'+'los archivos(*.*)|*.*';
savedialog1.filterindex:=1;
savedialog1.initialdir:='C:Documents and SettingsdAnIeLMis documentosNueva carpeta';
savedialog1.defaultext:='*.dat';
if savedialog1.execute then
begin
NomArch:=Savedialog1.filename;
assignfile(fich,NomArch);
Rewrite(fich);
button3.enabled:=false;
button2.enabled:=true;
edit1.setfocus;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
with lib do
begin
cod:=Edit1.text;
tit:=edit2.text;
aut:=edit3.text;
edi:=edit4.text;
nej:=strtoint(edit5.text);
pre:=strtofloat(edit6.text);
end;
write(fich,lib);
button2.enabled:=false;
button3.enabled:=true;
button3.setfocus;
showmessage('Informacion Guardada');
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
edit1.text:='';
edit2.text:='';
edit3.text:='';
edit4.text:='';
edit5.text:='';
edit6.text:='';
edit1.setfocus;
button2.enabled:=true;
button3.enabled:=false;
end;
procedure TForm1.SALIRClick(Sender: TObject);
begin
if fileexists(NomArch) then
closefile(fich);
close;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
opendialog1.filter:='archivos de datos(*.dat)|*.dat|Todos'+'los archivos(*.*)|*.*';
opendialog1.FilterIndex:=2;
opendialog1.InitialDir:='C:Documents and SettingsdAnIeLEscritorioNueva carpeta';
opendialog1.defaultext:='*.dat';
if opendialog1.execute then
begin
NomArch:=opendialog1.FileName;
assignfile(fich,nomArch);
Reset(fich);
Actualiza;
end;
end;
end.
el button 1 es crear
el button 2 es guardar
el button 3 es nuevo
el button 4 es sair ( ya esta con ese nombre)
y el button 5 es abrir
desde ya muchas gracias.
Soy nuevo en lo que a programacion en lenguaje delphi se refiere, y en la universidad nos pidieron hacer un programa al que se le tiene que poner los datos de un libro (para su clasificacion), este programa debe poder crear, almacenar y leer los archivos que creo.
bueno el programa cuenta con 6 label (codigo, autor, titulo,editorial,nº de ejemplares y precio)
y sus respectivos 6 edits, tambien tiene 5 buttons (crear archivo, guardar, nuevo, abrir y salir), un componente panel (donde se muestra el registro que se esta leyendo por ejem. registro 1 de 2 ) y dos speedbutton que supuestamente deberian cambiar el archivo que se esta leyendo para pasar a otro guardado (y mostrarlo), mi problema e ese, ya hice el programa que crea y lee archivos.
en lo que quisiera que me ayuden es en que este programa lea mas de un registro de libro guardado, ya que al abrir un registro solo me lee ese (registro 1 de 1) y el programa debe cambiar de libro cuando haces click en los speedbuttons ( < > ),(registro 1 de 4, 2 de 4)
si me ayudan se los agradeceria mucho.
el codigo del prgrama es:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls;
type
Tlibro=record
cod:string[8];
tit:string[30];
aut:string[30];
edi:string[20];
nej:word;
pre:real;
end;
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
Panel1: TPanel;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
Button1: TButton;
Button2: TButton;
Button3: TButton;
SALIR: TButton;
Button5: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure SALIRClick(Sender: TObject);
procedure Button5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
lib:Tlibro;
Fich:file of Tlibro;
NomArch:string;
implementation
{$R *.dfm}
procedure Actualiza;
begin
if not eof(fich) then
begin
read(fich,lib);
seek(fich,filepos(fich)-1);
with lib do
begin
form1.edit1.text:=cod;
form1.edit2.text:=tit;
form1.Edit3.Text:=aut;
form1.edit4.text:=edi;
form1.edit5.text:=inttostr(nej);
form1.edit6.text:=floattostr(pre);
end;
form1.Panel1.caption:='Registro '+inttostr(filepos(fich)+1)+'de '+inttostr(filesize(fich));
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
NomArch:string;
begin
Savedialog1.filter:='Archivos de datos(*.dat)|*.dat|Todos'+'los archivos(*.*)|*.*';
savedialog1.filterindex:=1;
savedialog1.initialdir:='C:Documents and SettingsdAnIeLMis documentosNueva carpeta';
savedialog1.defaultext:='*.dat';
if savedialog1.execute then
begin
NomArch:=Savedialog1.filename;
assignfile(fich,NomArch);
Rewrite(fich);
button3.enabled:=false;
button2.enabled:=true;
edit1.setfocus;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
with lib do
begin
cod:=Edit1.text;
tit:=edit2.text;
aut:=edit3.text;
edi:=edit4.text;
nej:=strtoint(edit5.text);
pre:=strtofloat(edit6.text);
end;
write(fich,lib);
button2.enabled:=false;
button3.enabled:=true;
button3.setfocus;
showmessage('Informacion Guardada');
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
edit1.text:='';
edit2.text:='';
edit3.text:='';
edit4.text:='';
edit5.text:='';
edit6.text:='';
edit1.setfocus;
button2.enabled:=true;
button3.enabled:=false;
end;
procedure TForm1.SALIRClick(Sender: TObject);
begin
if fileexists(NomArch) then
closefile(fich);
close;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
opendialog1.filter:='archivos de datos(*.dat)|*.dat|Todos'+'los archivos(*.*)|*.*';
opendialog1.FilterIndex:=2;
opendialog1.InitialDir:='C:Documents and SettingsdAnIeLEscritorioNueva carpeta';
opendialog1.defaultext:='*.dat';
if opendialog1.execute then
begin
NomArch:=opendialog1.FileName;
assignfile(fich,nomArch);
Reset(fich);
Actualiza;
end;
end;
end.
el button 1 es crear
el button 2 es guardar
el button 3 es nuevo
el button 4 es sair ( ya esta con ese nombre)
y el button 5 es abrir
desde ya muchas gracias.
Valora esta pregunta
0