Pascal/Turbo Pascal - !!!AYUDA !!! Sacar dato de STRING

 
Vista:

!!!AYUDA !!! Sacar dato de STRING

Publicado por Kioon (12 intervenciones) el 25/04/2005 22:58:25

Buenas noches.

Tengo un gran problema. Imaginaros que tengo una variable de tipo STRING llamada "cadena". Voy almacenar por ejemplo una cadena de numeros. Existe una funcion que me saque la cadena que contenga por ejemplo "56". Es decir.

VAR
cadena 1:STRING;
cadena 2:STRING;

BEGIN

cadena1:='12345';
cadena2:='2876';

Vale si yo por ejemplo quiero que se me muestre la cadena que contiene "87" existe alguna función o algo parecido.

Muchas Gracias
Kioon
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:!!!AYUDA !!! Sacar dato de STRING

Publicado por Roberto Garcia Garcia (41 intervenciones) el 26/04/2005 04:46:50
Pero como no, el manejo de cadenas es una de las chuladas de Turbo Pascal

la funcion POS busca una subadena en una cadena y devuelve la posicion del primer caracter dentro la cadena donde empieza la subcadena.

s:='123456789';

donde := pos ( '345' , s ) ;

devuelve 3, ya que en la posicion 3 de s empieza la subcadena '345'

si la subcadena que estas buscando no esta en la cadena, pos devuelve 0

cadena1:='12345';
cadena2:='2876';

donde:=pos('87',cadena1);

if donde <> 0 then begin
write('87 esta en cadena1');
end
else begin
donde:=pos('87',cadena2);
if donde <> then begin
write('87 esta en cadena2');
end
end

al ser una funcion tambien puedes usarla directamente en el if

if pos('87',cadena1) then

y usando inteligentemente copy o delete junto con pos, puedes sacar una subcadena de una cadena, no solo encontrarla.
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:!!!AYUDA !!! Sacar dato de STRING

Publicado por Hurricane (26 intervenciones) el 26/04/2005 12:34:49
Si lo necesitas es transformar una cadena en número, utiliza el Procedimiento VAL(). Ejemplo:

Program Prueba;

Var
N :Integer;
S :String;
E :Integer;

Begin
Repeat
Write('Ingrese un número: ');
ReadLn(S);
Val(S, N, E);
If (E>0) then WriteLn('Ingrese un número, por favor.');
Until (E=0);
WriteLn('El número ingresado es el ', N);
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