Ver Mensaje Individual
  #3  
Antiguo 08-08-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Reputación: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Si leíste ya lo que te dice Neftali seguro seguramente lo tienes hecho, porque así es como puede hacerse. Sin embargo, sabe que habrá varias formas de plantear el asunto, sin que esto quiera decir que es complicado. Ahí va lo que se me ocurrió a mí:

Código Delphi [-]
 
// Parte una determinada cadena separada por un
// determinado caracter separador: se devuelven
// en sendas variables la primera y segunda partes.
//
procedure PartirCadena(cadena, separador: string;
  var primeraParte, segundaParte: string);
var
  i: integer;
begin
  i := Pos(separador, cadena);
  primeraParte := Copy(cadena, 0, i-1);
  segundaParte := Copy(cadena, i+1, Length(cadena)-i);
end;
 
// Ejemplo de llamada
//
procedure TForm1.Button1Click(Sender: TObject);
var
  primeraParte,
  segundaParte: string;
begin
  PartirCadena('hoy_mañana', '_',
    primeraParte, segundaParte);
  ShowMessage(primeraParte);
  ShowMessage(segundaParte);
end;
Así lo hice después de leer a Neftali. Antes lo había hecho de este otro modo, obteniendo el mismo resultado (en ambos casos sin probar demasiado posibles consecuencias inesperadas u otros errores):

Código Delphi [-]
 
uses
  StrUtils;
 
// Parte una determinada cadena separada por un
// determinado caracter separador: se devuelven
// en sendas variables la primera y segunda partes.
// 
procedure PartirCadena(cadena, separador: string;
  var primeraParte, segundaParte: string);
var
  i: integer;
begin
  i := Pos(separador, cadena);
  primeraParte := AnsiLeftStr(cadena, i-1);
  segundaParte := AnsiRightStr(cadena, Length(cadena)-i);
end;
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita