Pascal/Turbo Pascal - Problema q se m presenta: :Error al leer el disco

 
Vista:

Problema q se m presenta: :Error al leer el disco

Publicado por Valeska Viloria (2 intervenciones) el 30/06/2005 04:55:03
Hola a todos!! por fa necesito q me ayuden URGENT!!!!!cuando intnto correlo ,m da error al leer los archivos del disco, casi siempre dic q no lo encuentra pro el archivo si exist,y si lo encuentra lo muestra vacío. Aún m faltan algunas modificasiones de string a entero o real. GRACIAS POR LA AYUDA Q ME PUEDAN DAR, SI ES PRONTA SU RESPUESTA SE LAS AGRADEZCO.AQUI LES MANDO UN PEDACITO DEL CODIGO
...declaraciones
Type
Reglibros = Record
Codigo:string[7];
titulo:string[25];
autor,proveedor:string[20];
Precio:string[9];
stactual, stmax, stmin:string [3];
end;
Archlibros = File of reglibros;
Var
libros:archlibros;
Opcion: integer;
Rlibros:Reglibros;
salir: boolean;
logico:boolean;
ArreLibros: arrelib;
stock,stockm,stockma, cant, contped, contfac, contcli,contlib,i,j,n: integer;
Mayusculas:set of letrasmay;
minusculas:set of letrasmin;
cod1:string[7];
Resultado:integer;
procedure inverlib(arl: arrelib; contl: integer);
var
aux:reglibros;
Begin
repeat
{$i-}
rewrite(libros);
resultado:=IOresult;
{SI+}
if resultado<>0 then
writeln('El archivo de libros no se ha encontrado.')
until (resultado=0);
For j:=1 to contl do
Begin
aux:=arl[j];
write(libros,aux); end; {fin For} close(libros);
end;{fin inverlib}
Procedure llenarLib(var arl: arrelib; var contl: integer);
{Este Procedimiento guarda los registros de cada libro en un Arreglo, antes de ordenarlo}
Begin
repeat
{$i-}
reset(Libros); resultado:=IOresult;
{SI+}
if resultado<>0 then
writeln('El archivo de libros no se ha encontrado.')
until (resultado=0);
read(libros,rlibros);
contl:=0;
while (Not EOf) do
begin
contl:=contl+1;
arl[contl]:=rlibros;
read(Libros, rlibros);
end;{while not eof}
close(libros)
end;{Procedure llenlib}
procedure burb_lib(var ArL: arrelib; contl:integer);
{este procedimiento ordena el arreglo por el metodo de burbuja}
Var
aux: reglibros;
begin
For j:=1 to (contlib-1) do
for n:=1 to (contlib-1) do
If Arl[n].codigo>Arl[n+1].codigo then
Begin
aux:= Arl[n];
ArL[n]:=Arl[n+1];
Arl[n+1]:=aux;
end;{Fin if}
end;{procedure Burbuja_libros}
procedure ordenlib;
begin
llenarlib(arrelibros,contlib);
burb_lib(arrelibros,contlib);
inverlib(arrelibros, contlib);
end;{Ordenar_arreglo_libros}


Procedure busc_lib(aut:string);
begin
repeat
{$i-}
reset(libros);
resultado:=IOresult;
{SI+}
if resultado<>0 then
writeln('El archivo de Libros no se ha encontrado.')
Until (resultado=0);
read (libros,rlibros);
while (Not Eof) do
Begin
If rlibros.autor=aut then
begin
writeln('Codigo: ', rlibros.codigo);
writeln('Titulo: ',rlibros.titulo);
writeln('Autor: ', rlibros.autor);
writeln('Bs: ', rlibros.precio);
writeln('Proveedor: ',rlibros.proveedor);
writeln('Cantidad existente: ',rlibros.stactual);
writeln('Stock M¡nimo: ',rlibros.stmin);
writeln('Stock M ximo: ',rlibros.stmax);
end;{If}
read(libros,rlibros);
end;{while}
readkey;
end;{procedimiento bus_lib}
Procedure Cons_Lib;{Se le solicitan los datos al usuario del libro que desea consultar}
var
titulo1:string[25];
autor1: string[20];
Begin
writeln('A continuaci¢n Ingrese el autor.');
readln(autor1);
Busc_Lib(autor1);
end;{Cons_lib}
Procedure agre_lib;{Se agregan nuevos libros al archivo de libros}
var
Codigo1: string[7];
aux:reglibros;
procedure ag_lib(aux1: reglibros; VAR ARL: ARRELIB; var contl:integer);
begin
arl[contl+1] :=aux1;
contl:=contl+1;
end; {procedure ag_lib}
Begin
Repeat
{$i-}
reset(libros);
resultado:=IOresult;
{SI+}
if resultado<>0 then
writeln('El archivo de Libros no se ha encontrado.')
until (resultado=0);
writeln('Ingrese el c¢digo del libro que desea agregar.');
readln(codigo1);
read(libros, aux);
Logico:=false;
while ((not eof) and (Logico=false)) do
begin
if codigo1=aux.codigo then
logico:=true;
{end If}
read(libros,aux)
end;{while}
close(Libros);
if logico=false then
begin
aux.codigo:=codigo1;
writeln('Proceda a ingresar los datos solicitados del libro que se agregar .');
writeln('Titulo.');
readln( aux.titulo);
writeln('Autor.');
readln(aux.autor);
writeln('Precio.');
readln(aux.precio);
Val(aux.precio, prec,error);
while prec<=0 do
begin
writeln ('Error en precio; debe ser positivo. Intente nuevamente.');
readln(aux.precio)
end;{while validaci¢n}
writeln('Proveedor.');
readln(aux.proveedor);
writeln('Cantidad existente.');
readln(aux.stactual);
Val(aux.stactual,stock,error);
while stock<=0 do
begin
writeln ('Error la cantidad debe ser positiva y distinta de cero. Intente nuevamente.');
readln(aux.stactual);{while validaci¢n}
end;
writeln('Stock Minimo.');
readln(aux.stmin);
Val(aux.stmin,stock,error);
while (stock<=0) do
begin
writeln ('Error la cantidad debe ser positiva y distinta de cero. Intente nuevamente.');
readln(aux.stmin);
end; {while validaci¢n}
writeln('Stock Maximo.');
readln(aux.stmax);
val(aux.stmax,stock,error);
while (stock<=0) do
begin
writeln ('Error la cantidad debe ser positiva y distinta de cero. Intente nuevamente.');
readln(aux.stmax)
end;{while validaci¢n}
llenarlib(arrelibros,contlib);
ag_lib(aux,ARRELIBROS, contlib);
burb_lib(arrelibros,contlib);
inverlib(arrelibros,contlib);
end{If logico=false}
else
writeln('No se Puede agregar libro indicado debido a que ya se encuentra en el inventario.');
end;{Agre_lib}
procedure mod_lib;
var
cod1: string[7];
Resp:char;
begin
writeln('Ingrese el c¢digo del producto.');
readln(cod1);
llenarlib(arrelibros,contlib);
for i:=1 to contlib do
Begin
if arrelibros[i].codigo=cod1 then
begin
resp:= 's';
while (Resp='S') or (Resp='s') do
Begin
writeln('Seleccione el campo que desea modificar.');
writeln('1.-Precio.');
writeln('2.-Proveedor.');
writeln('3.-Stock Minimo.');
writeln('4.-Stock M ximo');
readln(opcion);
while (opcion<1) or (opcion>4) do
Begin
Writeln('Opci¢n invalida. Elija nuevamente.');
readln(opcion);
end;{while validaci¢n}
case opcion of
1:begin
writeln('Ingrese nuevo precio:');
readln(arrelibros[i].precio);
end;
2:begin
writeln('Ingrese nombre del nuevo proveedor:');
readln(arrelibros[i].proveedor);
end;
3:begin
writeln('Ingrese nuevo stock minimo:');
readln(arrelibros[i].stmin);
end;
4:begin
writeln('Ingrese nuevo stock maximo:');
readln(arrelibros[i].stmax);
end;
end; {case opciones}
writeln('¨Desea modificar algun otro dato?S/N');
readln(resp);
while (resp<>'S')or(resp<>'s')or(Resp<>'N')or(Resp<>'n') do
begin
writeln('Opcion invalida,intente nuevamente.S/N');
readln(resp);
end;{while validaci¢n}
end; {while Resp}
end;{if arrelibors[i]=Cod1}
end;{for}
inverlib(arrelibros,contlib);
end;{modificar_libros}
procedure menu_principal;
var
resp:char;
Begin
resp:='s';
While (resp='s') or (resp='S') do
begin
Writeln ('Men£ Principal.');
writeln('1. Archivos');
writeln('2. Facturar');
writeln('3. Salir del sistema');
read(opcion);
while (opcion <1) or (opcion>3) do
Begin
write('Opcion inv lida. Intente nuevamente.');
readln(Opcion);
end;{while validaci¢n}
Case opcion of
1: menuarch;
2: facturar;
3: begin
writeln('Ha finalizado el programa.');
resp:='N';
end;
End;{fin del case}
End;{fin del while Resp}
End;{Procedimiento menu_principal}
Begin{programa principal}
assign(libros,'a:\Archivol.dat');
menu_principal;
end.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema q se m presenta: :Error al leer el dis

Publicado por Diego Romero (786 intervenciones) el 30/06/2005 10:18:07
Mira, te doy un consejo, espero que lo sigas: cuando postees un mensaje pidiendo ayuda ten la deferencia de cuidar tu ortografía y tipeo, tu párrafo iniciar es un galimatias criptográfico difícilmente entendible para mi que soy el que quiere prestarte ayuda. No es que a mi me moleste, es una cuestión de respeto. El esfuerzo que tú te ahorras descuidando tu ortografía y tipeo es el esfuerzo que tengo que hacer yo para entender lo que me quieres decir y corro el riesgo de entender cualquier cosa menos lo que tú necesitas.

Bien, el código fuente que has posteado aquí está incompleto. No están definidos estos identificadores: arrelib, letrasmay y letrasmin. Sin esas definiciones no puedo compilar y probar el programa para ver dónde falla y por qué.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Diego

Publicado por Valeska (2 intervenciones) el 30/06/2005 18:16:29
Diego gracias por tus consejos, realmente entiendo pero te cuento que tuve que ahorrarme espacio por que aqui se impone un Limite de caracteres. Igual agradezco la ayuda que Puedas prestar. Soy estudiante de Promaciòn I. T envio el còdigo a tu correo para que lo puedas ver completo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

IMPORTAMTISIMO (URGENTE)

Publicado por alguien (1 intervención) el 02/10/2005 03:00:29
HOLA SOLO QUERIA RECORDARTE LO HERMOSA QUE ERES, Y SI NO LO SABIAS ENTERATE, HASTA UN CIEGO LO SABE ;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar