Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-06-2012
Avatar de mightydragonlor
[mightydragonlor] mightydragonlor is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Medellín-Colombia
Posts: 587
Poder: 20
mightydragonlor Va por buen camino
Esta función te devuelve la cantidad de diferencias que encuentra entre las cadenas, aún así, no queda muy claro lo que necesitas.

Código Delphi [-]
function Diferencias(Str1, Str2: String): Integer;
var
  d : array of array of Integer;
  Len1, Len2 : Integer;
  i,j,cost:Integer;
begin
  Len1:=Length(Str1);
  Len2:=Length(Str2);
  SetLength(d,Len1+1);
  for i := Low(d) to High(d) do
    SetLength(d[i],Len2+1);
 
  for i := 0 to Len1 do
    d[i,0]:=i;
 
  for j := 0 to Len2 do
    d[0,j]:=j;
 
  for i:= 1 to Len1 do
    for j:= 1 to Len2 do
    begin
      if Str1[i]=Str2[j] then
        cost:=0
      else
        cost:=1;
      d[i,j]:= Min(d[i-1, j] + 1,
                   Min(d[i, j-1] + 1,
                       d[i-1, j-1] + cost)
                            );
    end;
  Result:=d[Len1,Len2];
end;
__________________
mas confundido que Garavito el día del Niño.
Responder Con Cita
  #2  
Antiguo 16-06-2012
Avatar de Jere_84
Jere_84 Jere_84 is offline
Miembro
NULL
 
Registrado: sep 2011
Ubicación: Córdoba, Argentina
Posts: 214
Poder: 0
Jere_84 cantidad desconocida en este momento
Cita:
Empezado por mightydragonlor Ver Mensaje
Esta función te devuelve la cantidad de diferencias que encuentra entre las cadenas, aún así, no queda muy claro lo que necesitas.

Código Delphi [-]
function Diferencias(Str1, Str2: String): Integer;
var
  d : array of array of Integer;
  Len1, Len2 : Integer;
  i,j,cost:Integer;
begin
  Len1:=Length(Str1);
  Len2:=Length(Str2);
  SetLength(d,Len1+1);
  for i := Low(d) to High(d) do
    SetLength(d[i],Len2+1);
 
  for i := 0 to Len1 do
    d[i,0]:=i;
 
  for j := 0 to Len2 do
    d[0,j]:=j;
 
  for i:= 1 to Len1 do
    for j:= 1 to Len2 do
    begin
      if Str1[i]=Str2[j] then
        cost:=0
      else
        cost:=1;
      d[i,j]:= Min(d[i-1, j] + 1,
                   Min(d[i, j-1] + 1,
                       d[i-1, j-1] + cost)
                            );
    end;
  Result:=d[Len1,Len2];
end;
Gracias mightydragonlor, pero lo único que necesito es que me digo si son o no iguales. Imagino que debe haber alguna que sea boolean.
Slds.
Responder Con Cita
  #3  
Antiguo 16-06-2012
Avatar de mightydragonlor
[mightydragonlor] mightydragonlor is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Medellín-Colombia
Posts: 587
Poder: 20
mightydragonlor Va por buen camino
Cita:
Empezado por Jere_84 Ver Mensaje
Gracias mightydragonlor, pero lo único que necesito es que me digo si son o no iguales. Imagino que debe haber alguna que sea boolean.
Slds.
Prueba con esto.
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
Var a,b: String;
  Function Igualdad(Str1, Str2: String): Boolean;
  Begin
    If Str1=Str2 Then Result:=True Else Result:=False;
  end;
begin
  a:= '123';
  b:= '123';
  If Igualdad(a,b) = True Then ShowMessage('Son iguales!') Else ShowMessage('Son diferentes!');
end;
__________________
mas confundido que Garavito el día del Niño.
Responder Con Cita
  #4  
Antiguo 16-06-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
lo único que necesito es que me digo si son o no iguales.
Hola Jere_84.

Entonces, otra posibilidad es utilizar cualquiera de las funciones StrCompare o AnsiStrCompare, estas devuelven un valor que según la propia ayuda de Delphi es:
Código:
Condition  Return Value
S1 > S2	   > 0
S1 < S2    < 0
S1 = S2	   = 0
Ahora podrías hacer:
Código Delphi [-]
 if Boolean(CompareStr('Hola', 'Hola')) then // True si son <>
    ShowMessage('Diferentes')
  else
    ShowMessage('Iguales');

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 16-06-2012 a las 20:47:17.
Responder Con Cita
  #5  
Antiguo 18-06-2012
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 27
Delphius Va camino a la fama
Pues... no conozco si existe una función para comprar strings. Es la primera vez que "escucho" que se tenga que pagar por usarlos

Ahora yendo a tu pregunta: Define para ti que dos strings sean iguales... porque a mi me huele a que te estás complicando al puro %$#&@. Define realmente que es "compararlos"
En principio para algo tan trivial y básico ¿Hace falta una función? ¿Que o quien te impide hacer algo como:

Código Delphi [-]
if String1 = String2
   then ShowMessage('Son Iguales macho. ¿Que no ves?')
   else ShowMessage('Pues resulta que somos distintos. Y no hizo falta de más para compararnos')
;

Digo... o es que yo me volví más tarado, que puede ser y no descarto , o es que tu esperas algo más de una "comparación". A ver si te explicas porque...

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #6  
Antiguo 18-06-2012
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 947
Poder: 25
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Bueno en delphi xe existen varias funciones para realizar lo que requieres...

Unit: SysUtils.Pas
  • SameStr
  • SameText
  • CompareStr
  • CompareText
  • AnsiCompareStr
  • AnsiCompareText
  • CompareMem

Cada una con sus características.

En la unit StrUtils.Pas, existen mas funciones la cosa sería buscar...

Saludos cordiales


Saludos
Responder Con Cita
  #7  
Antiguo 18-06-2012
Avatar de Jere_84
Jere_84 Jere_84 is offline
Miembro
NULL
 
Registrado: sep 2011
Ubicación: Córdoba, Argentina
Posts: 214
Poder: 0
Jere_84 cantidad desconocida en este momento
Cita:
Empezado por cloayza Ver Mensaje
Bueno en delphi xe existen varias funciones para realizar lo que requieres...

Unit: SysUtils.Pas
  • SameStr
  • SameText
  • CompareStr
  • CompareText
  • AnsiCompareStr
  • AnsiCompareText
  • CompareMem

Cada una con sus características.

En la unit StrUtils.Pas, existen mas funciones la cosa sería buscar...

Saludos cordiales


Saludos
Muchas Gracias, me quede con: SameText

Slds.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Documental: Comprar, tirar, comprar rretamar La Taberna 11 26-01-2011 18:06:40
Case para strings?? Milperrimo Varios 12 21-01-2009 22:19:28
¿Es buen momento para comprar Delphi? matabyte Debates 10 03-06-2008 12:40:05
¿Que portatil comprar para linux? Choll Linux 3 03-08-2007 13:49:51
Función para strings Jesús Pena Varios 4 26-04-2007 01:48:33


La franja horaria es GMT +2. Ahora son las 18:52:11.


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