ADA - Una dudilla

 
Vista:

Una dudilla

Publicado por Javi (2 intervenciones) el 05/01/2009 12:04:38
wenas aqui os dejo la declaracion de variables, y la linea de codigo q me da error, espero q alguien sepa cual es el fallo porq ya nose q cambiar... :(

BLOCK_POS: Positive;
BLOCK_SIZE: Positive;
FILE_NAME: ASU.Unbounded_String;
BLOCK_DATA: Ada.Streams.Stream_Element_Array(1..1024);
Fichero_Origen: S_IO.File_Type;

****esta es la linea de codigo****
S_IO.Read(Fichero_Origen, BLOCK_DATA, Ada.Streams.Stream_Element_Offset(BLOCK_SIZE), S_IO.Positive_Count(BLOCK_POS));

El error q me da es: "Excepción imprevista: CONSTRAINT_ERROR en: peer_handler.adb:81 range check failed".

Ya he intentado poner en vez de S_IO.Positive_Count(BLOCK_POS), Ada.Streams.Stream_IO.Positive_Count(BLOCK_POS), pero me da un error de la libreria Lower_layer.

Gracias anticipadas. Un saludo
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
Imágen de perfil de Alejandro

Error de rango en la lectura de un archivo

Publicado por Alejandro (155 intervenciones) el 30/06/2023 23:15:09
El error "Excepción imprevista: CONSTRAINT_ERROR en: peer_handler.adb:81 range check failed" indica que se ha producido un error de rango en la lectura del archivo. Esto generalmente ocurre cuando el tamaño de los datos leídos excede el tamaño máximo permitido para el tipo de dato o el arreglo.

En tu caso, el error puede estar relacionado con el tamaño del arreglo `BLOCK_DATA`, que se declara como `Ada.Streams.Stream_Element_Array(1..1024)`. Verifica si el tamaño de los datos que intentas leer del archivo excede el tamaño máximo permitido por el arreglo.

Además, asegúrate de que los parámetros que pasas a la función `S_IO.Read` sean correctos y estén en el formato adecuado. Verifica si `BLOCK_SIZE` y `BLOCK_POS` tienen los valores correctos y están dentro del rango válido.

Si el problema persiste, revisa la documentación de la función `S_IO.Read` y los requisitos de los parámetros para asegurarte de que los estás utilizando correctamente.
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