Ver Mensaje Individual
  #6  
Antiguo 21-06-2013
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Reputación: 24
maeyanes Va por buen camino
Hola...

El código anterior lo escribí al vuelo y basándome en el código que tenías, así que tiene algunos errores...

La línea Palabra := Copy(Texto, 2, Length(Texto) - 1) en realidad debería decir: Palabra := Copy(Texto, 2, Length(Texto) - 2), para que obtenga la subcadena sin el primer y último caracter.

Ahora, esta es una versión ya comprobada:

Código Delphi [-]
var
  C: string;
  C1: string;
  C2: string;
  Texto: string;
  Palabra: string;
  Mensaje: string;
  I: Integer;

begin
  Texto := InputBox('Ingresar mensaje', 'Ingrese un mensaje', '');
  Palabra := '';
  for I := 1 to Length(Texto) do
  begin
    C := Copy(Texto, I, 1);
    // Vamos formando la palabra a analizar
    if C <> ' ' then
      Palabra := Palabra + C;
    // Si es un espacio en blanco o ya llegamos al final del texto
    if ((C = ' ') or (I = Length(Texto))) then
    begin
      // Si la longitud es par, hacemos el intercambio
      if Length(Palabra) mod 2 = 0 then
      begin
        // Obtenemos el primer caracter
        C1 := Copy(Palabra, 1, 1);
        // Obtenemos el último caracter
        C2 := Copy(Palabra, Length(Palabra), 1);
        // Obtenemos la subcadena sin el primer y último caracter
        Palabra := Copy(Palabra, 2, Length(Palabra) - 2);
        // Concatenamos la cadena con el primer y último caracteres invertidos
        Palabra := C2 + Palabra + C1
      end;
      // Armamos el mensaje a mostrar
      Mensaje := Mensaje + ' ' + Palabra;
      Palabra := ''
    end
  end;
  // Mostramos el mensaje ya procesado (Trim elimina los espacios en blanco al inicio y final de la cadena)
  ShowMessage(Trim(Mensaje))


Saludos...
__________________
Lee la Guía de Estilo antes que cualquier cosa. - Twitter
Responder Con Cita