Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-07-2010
Avatar de fide_uci
fide_uci fide_uci is offline
Miembro
 
Registrado: ene 2009
Ubicación: Cuba - La Habana
Posts: 226
Poder: 16
fide_uci Va por buen camino
Question Problemas con idMimeEncode y idMimeDecode

Buenas amigos. Mi problema es el siguiente y quiciera que si fuera posible me ayudaran a resolverlo.

Tengo esta cadena de texto.

Código:
Fidel Hernández Salazar
El problema es que cuando ejecuto este codigo.

Código Delphi [-]
   Edit2.Text := EncoderMIME.EncodeString(Edit1.Text);
   //Seguidamente lo decodifico
   Edit1.Text := DecoderMIME.DecodeString(Edit2.Text);

En ves de devolverme la cadena correctamente, o sea

Código:
Fidel Hernández Salazar
Me retorna:
Código:
Fidel Hernandez Salazar
sin tilde. Haciengo algunas pruebas me di cuenta que cuando codifico un String y luego lo decodifico, las tildes, las "ñ" y otros caracteres se pierden, o sea a las letras que tienen tildes se les quita, y a la "ñ" tambien se le quita la tilde. Estoy utilizando Indy10 y Delphi 7. Alguien sabe a que se deba este problema ???

Probando con PHP me di cuenta que si devuelve el resultado esperado, pero no se por que con delphi me sucede esto. Aqui pongo el codigo PHP que utilizo.

Código:
<?php

	$texto = "Fidel Hernández Salazar";
	$codificado = base64_encode($texto);
	$decodificado = base64_decode($codificado);
	echo "Codificado: " . $codificado . "<br/>"; 
	echo "Decodificado: " . $decodificado."<br/>";
	
?>

Última edición por fide_uci fecha: 29-07-2010 a las 14:46:03.
Responder Con Cita
  #2  
Antiguo 01-08-2010
Avatar de yapt
yapt yapt is offline
Miembro
 
Registrado: sep 2006
Ubicación: España
Posts: 258
Poder: 18
yapt Va por buen camino
Hay problemas conocidos con algunas versiones de las Indy. Si estás utilizando Indy 10, procura actualizar a la última versión. Este problema se arregló hace poco más de un mes o mes y medio.

Que versión de Indy estás manejando ? Que versión de Delphi ?

En cualquier caso, prueba esto a ver si hay suerte (probado con Delphi 2010):

Código Delphi [-]
uses EncdDecd;

Código Delphi [-]
function EncodeBase64(const Value: string):string;
var
  fstream, fStringStream: TStringStream;
begin
  fstream       := TStringStream.Create(Value);
  try
    fStringStream := TStringStream.create('');
    try
      EncodeStream(fstream, fStringStream);
      result        := fStringStream.DataString;
      //--
    finally
      FreeAndNil(fStringStream);
    end;
  finally
    FreeAndNil(fStream);
  end;
end;

function DecodeBase64(const Value: string):string;
var
  fstream, fStringStream: TStringStream;
begin
  fstream       := TStringStream.Create(Value);
  try
    fStringStream := TStringStream.create('');
    try
      DecodeStream(fStream, fStringStream);
      result        := fStringStream.DataString;
      //---
    finally
      FreeAndNil(fStringStream);
    end;
  finally
    FreeAndNil(fStream);
  end;
end;


El uso sería el siguiente:

Código Delphi [-]
Edit2.Text := EncodeBase64(Edit1.Text);
Edit1.Text := DecodeBase64(Edit2.Text);

Última edición por yapt fecha: 01-08-2010 a las 11:58:40. Razón: Había olvidado el uso de las funciones.
Responder Con Cita
  #3  
Antiguo 03-08-2010
Avatar de fide_uci
fide_uci fide_uci is offline
Miembro
 
Registrado: ene 2009
Ubicación: Cuba - La Habana
Posts: 226
Poder: 16
fide_uci Va por buen camino
Bueno antes que nada gracias por responder a mi pregunta. Estoy utilizando Delphi 7 y la version de Indy es la 10.5.7. Voy a actualizar a ver que sucede. Despues te cuento.

Última edición por fide_uci fecha: 03-08-2010 a las 16:45:39. Razón: Puse mal mi version de Indy instalada
Responder Con Cita
  #4  
Antiguo 03-08-2010
Avatar de fide_uci
fide_uci fide_uci is offline
Miembro
 
Registrado: ene 2009
Ubicación: Cuba - La Habana
Posts: 226
Poder: 16
fide_uci Va por buen camino
Por lo que veo la version de Indy que hay es la 10.5.7. Que es la misma que tengo instalada en mi delphi.
http://indy.fulgan.com/ZIP/IndyTiburon.zip

Código Delphi [-]
  gsIdVersion = '10.5.7'; {do not localize}
  gsIdProductName = 'Indy';  {do not localize}
Responder Con Cita
  #5  
Antiguo 03-08-2010
Avatar de yapt
yapt yapt is offline
Miembro
 
Registrado: sep 2006
Ubicación: España
Posts: 258
Poder: 18
yapt Va por buen camino
Perdona Fide, hablaba de la última versión en su SVN. Es decir, la versión de desarrollo.

En cualquier caso, has probado si el ejemplo que te he dado funciona en Delphi 7 ?

Eliminarías la dependencia de las Indy.
Responder Con Cita
  #6  
Antiguo 03-08-2010
Avatar de yapt
yapt yapt is offline
Miembro
 
Registrado: sep 2006
Ubicación: España
Posts: 258
Poder: 18
yapt Va por buen camino
Mira esto, quizá te da una pista:

http://atozedsoftware.newsgroups.arc...004106636.html

Un extracto.
Cita:
In tonight's snapshot, DecodeString() now has new TIdTextEncoding parameter,
ie:
Es por esto que te decía lo de la actualización. Aunque lo he intentado ahora y pide usuario/contraseña.

Saludos.
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


La franja horaria es GMT +2. Ahora son las 03:19:41.


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