Pascal/Turbo Pascal - Error 150 disk is write-protect

 
Vista:

Error 150 disk is write-protect

Publicado por Cecilia (4 intervenciones) el 23/02/2005 00:01:25
Cuando quiero volver a ejecutar un programa de archivos, en el RESET o REWRITE me arroja este error. No encuentro la vuelta. Espero que alguien me pueda ayudar pronto ya que debo rendir un examen y necesito saber si mi programa funciona correctamente.
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:Error 150 disk is write-protect

Publicado por Hurricane (39 intervenciones) el 23/02/2005 10:35:14
Si lo que quieres es evitar que el Programa se detenga por ese tipo de errores, mira este ejemplo:

Var
Ch :Text;

Begin
Assign(Ch, 'C:\Autoexec.bat');
{$I-}
Reset(Ch);
{$I+}
If (IOResult>0) then
WriteLn('Archivo no encontrado')
Else
Begin
Close(Ch);
WriteLn('OK');
End; {If}
End.

La dirctiva de comnpilación "$I-" desactiva la detención del programa por errores al realizar operaciones con diskettes. El "$I+" vuelve a dejarle el contro al Sistema. En "IOResult" se almacenan los códigos de error generados.

Espero que sea lo que necesitabas. Saludos ;-)
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:Error 150 disk is write-protect

Publicado por O. Alejandro (104 intervenciones) el 23/02/2005 13:52:36
Eso podria funcionar, pero ¿se podria escribir en la archivo aun cuando este protegido contra escritura?. Cecila revisaste que el disco no estuviera protegio contra escritura.
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:Error 150 disk is write-protect

Publicado por Hurricane (39 intervenciones) el 23/02/2005 14:01:44
Si no fuera problema de Diskette, puede que el archivo esté protegido contra escritura, con lo que se podría probra con lo siguiente:

Var
OldAttr :Word;
Ch :Text;

Begin
Assign(Ch, 'C:\autoexec.bat');
{$I-}
GetFAttr(Ch, OldAttr);
SetFAttr(Ch, Archive);
Reset(Ch);
{$I+}
If (IOResult>0) then
WriteLn('Imposible abrir archivo')
Else
Begin
Close(Ch);
SetFAttr(Ch, OldAttr);
WriteLn('OK');
End; {If}
End.

Saludos ;-)
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