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 13-02-2009
noob noob is offline
Miembro
 
Registrado: sep 2008
Posts: 212
Poder: 16
noob Va por buen camino
¿Existe función para asignar a una cadena el resultado de concatenarla con otra?

Quiero saber si existe alguna función que tenga el mismo efecto que:

Código Delphi [-]
Cadena := Cadena + Cadena2;

Saludos.
Responder Con Cita
  #2  
Antiguo 13-02-2009
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
¿La puedes hacer tú? o ¿Tiene que existir?
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 13-02-2009
noob noob is offline
Miembro
 
Registrado: sep 2008
Posts: 212
Poder: 16
noob Va por buen camino
Ah, sí, he pensado en hacerla yo pero preguntaba que si Delphi venía con esa función ya creada al igual que la función inc para incrementar enteros por ejemplo.
Responder Con Cita
  #4  
Antiguo 13-02-2009
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola noob, tienes la función Concat

Código Delphi [-]
 Concat(Cadena1, Cadena2, Cadena3)

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #5  
Antiguo 13-02-2009
noob noob is offline
Miembro
 
Registrado: sep 2008
Posts: 212
Poder: 16
noob Va por buen camino
@Caro con concat no gano mucho frente a Cadena1 := Cadena1 + Cadena2; pues sería:

Código Delphi [-]
Cadena1 := Concat(Cadena1, Cadena2);

Preguntaba si existía algo así como:

Código Delphi [-]
IncStr(Cadena1, Cadena2);

y al ejecutarse IncStr Cadena1 pasase a valer el resultado de concatenar Cadena1 con Cadena2.

Pero si no existe dicha función ya la creo yo, manos a la obra:

Código Delphi [-]
procedure IncStr(var Cadena1: String; Cadena2: String);
begin
  Cadena1 := Cadena1 + Cadena2;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 a, b: String;
begin
 a := 'hola';
 b := 'adios';
 IncStr(a, b);
 ShowMessage(a);
end;

Voilá, espero que los de CodeGear tomen nota y me contraten para el próximo Delphi
Responder Con Cita
  #6  
Antiguo 13-02-2009
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por noob Ver Mensaje
@Caro con concat no gano mucho frente a Cadena1 := Cadena1 + Cadena2; pues sería:
Hola de nuevo, no ganas mucho pero sería muy parecido a lo que tienes ahora.

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  a, b: String;
begin
  a := 'hola';
  b := 'adios';
  a := Concat(a, b);
  ShowMessage(a);
  //o
  ShowMessage(Concat(a, b));
end;

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #7  
Antiguo 13-02-2009
noob noob is offline
Miembro
 
Registrado: sep 2008
Posts: 212
Poder: 16
noob Va por buen camino
Es parecido pero no igual porque en mi caso no hago ninguna asignación, sólo ejecuto un procedimiento y mi cadena se actualiza.

Lo mío es como sustituir:

Código Delphi [-]
i := i + 1;

por

Código Delphi [-]
inc(i)

Saludos.
Responder Con Cita
  #8  
Antiguo 13-02-2009
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Revisar enfoque

Pues de que existe, existe, en la unidad SysUtils, pero la han marcado con una espantosa X:
Código Delphi [-]
{ AppendStr appends S to the end of Dest. AppendStr is provided for
  backwards compatibility only. Use "Dest := Dest + S" instead. }

procedure AppendStr(var Dest: string; const S: string); deprecated;

Código Delphi [-]
a := a + b;
11 caracteres.

Código Delphi [-]
IncStr(a, b);
2 caracteres más.

Código Delphi [-]
Cadena1 := Cadena1 + Cadena2;
29 caracteres.

Código Delphi [-]
IncStr(Cadena1, Cadena2);
Sólo cuatro caracteres menos.

Hubo un tiempo en el que, siendo yo más joven, empecé a crear una función "asignadora" por casi cada función "devolvedora" que tenía. Buscaba ciegamente el punto máximo de la simplificación como quien busca la piedra filosofal.

Hasta que comprendí que simplicidad no significa podar el código cual ayuntamiento de Chihuahua solía hacer con las platanáceas de las avenidas (¡dejaban solamente el p' tronco!).

También estaba en juego el asunto de la inteligibilidad y esa otra simplicidad que, a diferencia de los caracteres, no es gráfica, sino, digamos, neuronal. Así pues, dejé de hacer mero envolvimiento de expresiones de código sencillas en rutinas asignadoras, porque dicho envolvimiento, sencillamente, les restaba simplicidad.

Espero haber orientado de alguna manera.

Al González.

P.D. ¡Cómo extraño los sicomoros y sus hojas caídas de otoño arañando el suelo en un atardecer rojizo!
Responder Con Cita
  #9  
Antiguo 13-02-2009
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola, quisiera aportar algo más, si me lo permiten.

Además de lo que nuestro buen compañero Al comenta. Debe tenerse en cuenta otro factor más: cohesión y acoplamiento.

Tal vez me digan que es hacer demasiado lío por una función... pero ¿que no es demasiado lío el buscar una función para algo simple?

Declarar dicha función lleva a alternar el orden y el propósito de la unidad. Si se declara dentro de la unidad donde se prevee usarla, se pierde un poco de cohesión. Si se la añade en una unidad de propósito general, se incrementa el acoplamiento siendo necesario ahora incluso añadir en uses otras caracteres más.

Antes de incrementar el acoplamiento prefiero perder un poco de cohesión, pero quien en definitiva dirá donde va está en dos preguntas:

¿Cuántas veces tienes pensado usarla? ¿La usas en un sólo "lugar"?

Y si hay que buscarle lío, también lo podemos llevar a cuestionarnos de que añadir una función más, implica perder unas diezmilésimas de segundos más.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
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
Funcion para borrar la cadena que aparesca repetida dentro de otra cadena flystar Varios 1 02-07-2007 23:51:10
Funcion para buscar cadena dentro de otra cadena y el numero de veces flystar Varios 3 02-07-2007 22:48:08
Existe una funcion para...? famcd PHP 6 07-02-2006 12:18:07
Exite función para asignar otro valor si es null JavierO Varios 6 04-08-2005 18:22:56
Buscar cadena dentro de otra cadena doverzhoff Varios 4 27-01-2004 05:27:15


La franja horaria es GMT +2. Ahora son las 03:27:09.


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