Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-06-2013
napsterk89 napsterk89 is offline
Registrado
NULL
 
Registrado: jun 2013
Posts: 6
Poder: 0
napsterk89 Va por buen camino
Codificar un string en Delphi.

Hola, hace muy poco estoy aprendiendo a programar en Delphi. Actualmente estoy cursando una carrera de Técnico en Programación y me estoy metiendo en el tema.
Tengo un problema en el cual se me acabaron las ideas y necesito algo de ayuda. Si alguién tiene alguna idea para darme estaría agradecido...

Necesito hacer un programa a el cual cuando le ingrese un texto tome todas las palabras pares e intercambie su primera y última letra. Por ejemplo, si ingreso "El día está lluvioso" me devuelva "Le día áste Oluviosl".

Hasta ahora tengo esto, obviamente no funciona pero tiene cosas que sirven, solo no se como "ordenarlo" para hacerlo funcionar.
Una cosa más. En este prog no me permiten el uso de Arrays.
Gracias!




Código Delphi [-]
program ASD;

uses
  sysutils,
  dialogs;

Var TEXTO,car1,PALABRA,car2,car,mensaje:string; i,c:integer;

BEGIN

Mensaje:=INPUTBOX('Ingresar mensaje','Ingrese un mensaje','');
TEXTO:='';
FOR i:=1 TO Length(Mensaje) DO
Begin
CAR:=COPY(Mensaje,i,1);
TEXTO:=TEXTO+CAR;
End;
  IF (CAR=' ') AND (Length(texto) MOD 2 = 0 )
      THEN
           BEGIN
           CAR1:=COPY(texto,1,1);
           DELETE(texto, 1, 1);
           CAR2:=COPY(texto,Length(texto), 1);
           DELETE(texto,Length(texto),1);
           TEXTO:= CAR2+texto+CAR1;
           end;

SHOWMESSAGE(TEXTO);


end.
Responder Con Cita
  #2  
Antiguo 21-06-2013
Alejandro73 Alejandro73 is offline
Miembro
 
Registrado: abr 2006
Ubicación: Valparaiso - CHILE
Posts: 132
Poder: 19
Alejandro73 Va por buen camino
Estimado

Para que necesitas realizar lo que comentas, es parte de una tarea de algun ramo?

Saludos
__________________
Los muertos en CRISTO de sus tumbas volveran y los que vivimos en las nubes nos levantara .......
Responder Con Cita
  #3  
Antiguo 21-06-2013
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Hola...

Prueba con esto:

Código Delphi [-]
program ASD;

uses
  sysutils, dialogs;

Var
  Texto: string;
  Car: string;
  Car1: string;
  Car2: string;
  Palabra: string;
  Mensaje: string; 
  I: Integer;

begin
  Mensaje := InputBox('Ingresar mensaje', 'Ingrese un mensaje', '');
  Texto := '';
  // Recorremos todo el mensaje
  For := 1 to Length(Mensaje) do
  begin
    // Obtenemos el siguiente caracter
    Car := Copy(Mensaje, I, 1);
    // Si no es un espacio en blanco, lo concatenamos con Texto
    if Texto <> ' ' then
      Texto := Texto + Car
    else
      // Si la longitud de la palabra es par, hacemos el intercambio
      if Length(Texto) mod 2 = 0 then
      begin
        Car1 := Copy(Texto, 1, 1);
        Palabra := Copy(Texto, 2, Length(Texto) - 1);
        Car2 := Copy(Texto, Length(Texto), 1);
        Palabra := Car2 + Palabra + Car1;
        ShowMessage(Palabra);
        Texto := ''
      end
  end
end.
__________________
Lee la Guía de Estilo antes que cualquier cosa. - Twitter
Responder Con Cita
  #4  
Antiguo 21-06-2013
napsterk89 napsterk89 is offline
Registrado
NULL
 
Registrado: jun 2013
Posts: 6
Poder: 0
napsterk89 Va por buen camino
En realidad me lo tomaron en un examen de "Introducción a la Programación" y no lo supe resolver. Mis conocimientos sobre Delphi son muy básicos pero me interesa mucho. Supuestamente tengo el conocimiento para resolverlo, pero la verdad es que estoy careciendo de ideas xD
Responder Con Cita
  #5  
Antiguo 21-06-2013
napsterk89 napsterk89 is offline
Registrado
NULL
 
Registrado: jun 2013
Posts: 6
Poder: 0
napsterk89 Va por buen camino
Cita:
Empezado por maeyanes Ver Mensaje
Hola...

Prueba con esto:

Código Delphi [-]
program ASD;

uses
  sysutils, dialogs;

Var
  Texto: string;
  Car: string;
  Car1: string;
  Car2: string;
  Palabra: string;
  Mensaje: string; 
  I: Integer;

begin
  Mensaje := InputBox('Ingresar mensaje', 'Ingrese un mensaje', '');
  Texto := '';
  // Recorremos todo el mensaje
  For := 1 to Length(Mensaje) do
  begin
    // Obtenemos el siguiente caracter
    Car := Copy(Mensaje, I, 1);
    // Si no es un espacio en blanco, lo concatenamos con Texto
    if Texto <> ' ' then
      Texto := Texto + Car
    else
      // Si la longitud de la palabra es par, hacemos el intercambio
      if Length(Texto) mod 2 = 0 then
      begin
        Car1 := Copy(Texto, 1, 1);
        Palabra := Copy(Texto, 2, Length(Texto) - 1);
        Car2 := Copy(Texto, Length(Texto), 1);
        Palabra := Car2 + Palabra + Car1;
        ShowMessage(Palabra);
        Texto := ''
      end
  end
end.

Probé pero ingreso el texto y queda en un loop o algo así porque no da ningún resultado. Gracias igualmente, mientras sigo intentando xD

"Palabra := Copy(Texto, 2, Length(Texto) - 1);" eso es una buena idea en lugar de usar el Delete, no se me había ocurrido!
Responder Con Cita
  #6  
Antiguo 21-06-2013
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 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
  #7  
Antiguo 21-06-2013
napsterk89 napsterk89 is offline
Registrado
NULL
 
Registrado: jun 2013
Posts: 6
Poder: 0
napsterk89 Va por buen camino
Funciona perfecto! Muchas gracias, más tardo lo miro más detenidamente así capto bien la idea, me hubiese gustado deducirlo solo pero necesito aprender eso porque seguro me lo toman en un examen dentro de pocos días. Muchas gracias por la ayuda!
Responder Con Cita
  #8  
Antiguo 28-06-2013
funkybahiense funkybahiense is offline
Registrado
NULL
 
Registrado: jun 2013
Posts: 1
Poder: 0
funkybahiense Va por buen camino
Hola napster! cual de todos mis compañeros sos? en el recu nos tomaron otro mas facil!
Responder Con Cita
  #9  
Antiguo 28-06-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.042
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por funkybahiense Ver Mensaje
!
Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Codificar md5 en indy 10 JuanOrtega Varios 1 12-09-2011 11:37:10
Help!!! Error al codificar Delphi a C++ Builder man_cj C++ Builder 3 07-05-2008 14:36:40
Ayuda! Necesito Codificar colores en delphi Noiser Varios 2 10-04-2008 14:16:05
Codificar la url Drake PHP 2 20-10-2007 11:27:11
Codificar datos Drake C++ Builder 1 13-01-2006 18:00:27


La franja horaria es GMT +2. Ahora son las 07:26:43.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi