Programación General > Pascal

 Array De Caracteres

<< < (2/2)

.:Kioon:.:
Hola Eugenio!

       Muchas Gracias por todo lo que me estás ayudando. Por favor, te dejo mi dirección de correo ya que me apetece mandarte un correo con lo que me sale y me ayudes si quieres y no sé tu e-mail. El mio es jgarrid2@hotmail.com

Saludos y Gracias
Jesús :huh:

Enko:

--- Citar ---Muchas Gracias por todo lo que me estás ayudando

--- Fin de la cita ---
De nada, para esto está el foro


--- Citar --- no sé tu e-mail.

--- Fin de la cita ---
En mi perfil están las direcciones. (hacé click en mi nick para ver el perfil)


--- Citar ---mandarte un correo con lo que me sale

--- Fin de la cita ---
No veo cual es el problema de postearlo aqui (por supuesto usando el boton  CODE para que se vea mejor, está arriba del cuedro en donde escribes el mensaje )

 :hola:

.:Kioon:.:
Hola a tod@s.

      Bueno.. os explico que me pasa. Después de las modificaciones que he estado realizando, cuando se ejecuta el programa (si quereis lo podeís comprobar) la cadena, queda tal y como está sin cambiar las letras  :blink:


--- Código: Text --- PROGRAM arrPosicion; USES crt; CONST bajo=1;alto=499; TYPE     intervalo=bajo..alto; VAR    cadena:ARRAY [intervalo] OF CHAR;  VAR     i,n     :   INTEGER;    index   :   intervalo;    longitudCadena,posiciona:BYTE;    carac   :   CHAR;  BEGIN     cadena:=('&colof¢n&Luz...&#036;Cuando mis l grimas te alcancen&#036;la fusi¢n de mis ojos&#036;ya no ser  llorar&#036;sino ver.&#036;&abrojos&A un tal q asesin¢ a diez&#036;y era la imagen del vicio,&#036;muerto,el Soberano Juez&#036;le salv¢ del sacrificio');    longitudCadena:=LENGTH(cadena);     clrscr;    WRITELN ('');    WRITELN (' ========================');    WRITELN (' POESIAS');    WRITELN (' ========================');    WRITELN ('');    WRITELN ('');      FOR i:=1 TO longitudCadena DO         BEGIN             IF cadena[i] = '&' THEN               BEGIN              WHILE cadena[i] &#60;&#62; '&' DO                     BEGIN                     cadena[i] := upCase(cadena[i]); {esto lo pasa a mayusculas}                 i:=i+1;                     END;             END               ELSE i:=i+1;      END;      WRITELN (cadena); END.   
          Agredecería mucho a quien me ayudase.

Saludos
Jesús  :hola:

Enko:
Despues de ver un poco tu código está esto:

--- Código: Text ---  FOR i:=1 TO longitudCadena DO  *****{esto tiene que ser un while i &#60;=  longitud}       BEGIN           IF cadena[i] = '&' THEN              BEGIN               I := I+1; ****se ejecuta una vez sola avanzando en la cadena para que                                      la condicion siguiente pueda ser cierta alguna vez.            WHILE cadena[i] &#60;&#62; '&' DO *** sin el I+1 esto siempre era falso....                   BEGIN                   cadena[i] := upCase(cadena[i]); {esto lo pasa a mayusculas}                    I := I+1;                      END;           END            ELSE i:=i+1;    END;  
Otra cosa más....

Si lo que quieres hacer es pasar a mayusculas partes de la cadena, el proncipio y el final tendrian que ser marcados con distintos simbolos o sea :
principio-final
[-]
{-}
(-)
&-%
etc  
Sino el final de una, marca el principio de otra.....

Segun veo utilizas el FREE PASCAL que yo dezconozco sus sosillas.....

Lo que te paso a continucacion es un prog qeu toma una cadena y pasa a mayusculas    todo lo que este entr llaves {}...

Tambien lo probé en Free Pascal y anduvo bien.

<!--xc1--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>XCODE </td></tr><tr><td id='XCODE'><!--exc1-->

program mensaje;
uses CRT;
var
 i: integer;
 s: string;  {esta es la cadena proncipal en la cual entran 255 caracteres}
             {si necesitas m'as de 255 caracteres tendras qeu usar m'as de una}
begin
 s := '{estara en mayusculas}no Se AlTeRa{se pasa a Mayusculas} queda IgUaL{adivina}';
 ClrScr;
 WriteLn('Cadena antes: ', s);
 while i<= Length(s) do
 {recorre toda la cadena}
 begin
   if S[i] = '{' then {Hay que pasar todo ma mayusculas
   hasta que se encuentra con la llave de cerrar}
   begin
     while s[i] <> '}' do
     begin
       s[i] := upCase(s[i]);
       i := i + 1;
     end;
   end
   else
     i := i + 1; {sigue avanzando por si no encuentra nada}
 end; {del While i<length}
 WriteLn('Cadena despues: ', s);
 Readln;
end.
<!--xc2--></td></tr></table><div class='postcolor'><!--exc2-->

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa