Pascal/Turbo Pascal - Problema con lectura en Pascal

 
Vista:

Problema con lectura en Pascal

Publicado por Lucia Vilar (1 intervención) el 18/12/2006 19:03:26
hola.
A ver si me podeis ayudar por favor.
Tengo una cadena de caracteres de este tipo:
Hola*123Madrid.
necesito rescatar el numero 123 y guardarlo en un campo de un registro.
No sé como hacerlo, pues lo he intentado almacenando toda la cadena en una variable de tipo string y luego asignarlo, pero no puedo, porque la variable donde lo tengo que guardar es un entero y me da error, y tampoco lo puedo leer directamente del fichero porque me da el error "invalid numeric format" aún indicando: read(fich,num), siendo num de tipo entero.
Necesito ayuda urgente, por favor.
Gracias.
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 con lectura en Pascal

Publicado por Diego Romero (996 intervenciones) el 18/12/2006 21:55:52
Voy a suponer que el formato de las cadenas de texto son siempre iguales y tienen la forma: CCCC *NNNCCCCCC...

Almacenas la cadena en un string (leyéndola desde archivo tipo text) y luego

var
p: byte;
S: string;
n: integer;

begin
...
p:=pos('*',S); { busco la posición del asterico }
S:=copy(S, p, p+3); { extraigo el número }
val(S, n, p); { convierto el número a integer }
...
end.

Y ya está.
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:Problema con lectura en Pascal

Publicado por Lucia Vilar (17 intervenciones) el 19/12/2006 16:09:09
Gracias Diego.
Una cosita nada más. No sé lo que es p: byte; pork en clase no hemos visto nada de eso, si m lo pudieras aclarar....sería de gran ayuda. La manera de resolverlo que me ofreces es bastante buena y aclaratoria, gracias!!!
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:Problema con lectura en Pascal

Publicado por Diego Romero (996 intervenciones) el 19/12/2006 18:08:54
Como habrás intuido "byte" es un tipo de dato. Las variables de tipo byte ocupan un solo byte en memoria, lo que significa que su rango de valores está entre cero y 255 inclusive. En muchos casos es muy útil este tipo de datos.
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:Problema con lectura en Pascal

Publicado por Lucia Vilar (17 intervenciones) el 19/12/2006 18:10:56
Vale. Asi que entiendo que es un caracter que ocupa un byte...?? De todas formas he probado la manera que me dijiste de solucionarlo y es válido, siempre y cuando conozca el número de cifras del número, pero de momento m vale! Muchas Gracias.
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:Problema con lectura en Pascal

Publicado por Diego Romero (996 intervenciones) el 19/12/2006 18:39:18
No exactamente. Un tipo byte almacena un valor numérico (no un caracter) que está en el intervalo cerrado 0..255. Y sí, un tipo char también ocupa un byte en memoria pero no es compatible con el tipo byte. Esto quiere decir que no puedes asignar un tipo char a un tipo byte sin mediar una conversión de tipos.
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:Problema con lectura en Pascal

Publicado por Lucia Vilar (17 intervenciones) el 19/12/2006 19:23:03
Ok, lo pillé. No sé por k no nos enseñan ese tipo de datos en la universidad, porque realmente es útil y lo veo en muchos sitios.
Muchas Gracias por todo!! eres bueno explicando!! jeje
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