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 28-03-2011
TheBlackUnix TheBlackUnix is offline
Registrado
NULL
 
Registrado: mar 2011
Posts: 3
Poder: 0
TheBlackUnix Va por buen camino
xDDD no hay problema.. Mira mi codigo hasta ahora es así..
Actualmente el programa me dice cuanto repetidos hay, pero solo si se encuentran en el mismo orden.. Osea si esta por ejemplo así:
Edit1 : 1989
Edit2: 1989
Numero de repetidos : 4
Pero yo busco que me lo muestre aun esten en diferentes orden..
En cuanto a la versión de Delphi, tengo la V5..
Mi codigo actualmente:

a:=0;
IF copy(edit1.text,1,1)= copy(edit2.text,1,1) then
a:=a +1;
IF copy(edit1.text,2,1)= copy(edit2.text,2,1) then
a:=a +1;
if copy(edit1.text,3,1) = copy(edit2.text,3,1) then
a:=a+1;
if copy(edit1.text,4,1) = copy(edit2.text,4,1) then
a:=a+1;
edit3.text:=inttostr(a);

Última edición por TheBlackUnix fecha: 28-03-2011 a las 18:04:20.
Responder Con Cita
  #2  
Antiguo 28-03-2011
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.740
Poder: 26
ContraVeneno Va por buen camino
necesitas tener un arreglo de dos dimensiones, donde guardes el número y las veces que se ha repetido. Algo así:
[0, 2] que significa que el número cero se ha encontrado dos veces.
[1, 0] el uno no se ha encontrado
[2, 3] el dos está tres veces
y así hasta el nueve.

Y para saber los números necesitas extraer de la cadena del edit, de uno por uno, así que tienes que utilizar un FOR para recorrer la cadena. Luego necesitas el número donde puedes usar un COPY y por último necesitas comparar ese número, ese proceso lo puedes hacer utilizan on CASE.

Código:
Desde i = 1 hasta el final de la cadena
 Case Cadena[i]
   Cuando sea 0 entonces Arreglo[0] = Arreglo[0] + 1 
   Cuando sea 1 entonces Arreglo[1] = Arreglo[1] + 1
   .... hasta el nueve.
algo así mas o menos, a menos que alguien tenga una mejor idea...
__________________

Responder Con Cita
  #3  
Antiguo 28-03-2011
Avatar de gatosoft
[gatosoft] gatosoft is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Bogotá, Colombia
Posts: 835
Poder: 24
gatosoft Va camino a la fama
Pues si quieres seguir con tu metodología, tendrías que hacer una comparación por cada posición que tengas, de forma tal que obtendrías un producto cartesiano...

comparar posicion 1 con posicion 1
comparar posicion 1 con posicion 2
comparar posicion 1 con posicion 3
comparar posicion 1 con posicion 4
comparar posicion 2 con posicion 1
....

Lo cual no aconsejo, ya que para esto existen las estructuras como FOR o While...

Adicionalmente hay que tener en cuenta que las cadenas de texto en Pascal permiten acceder a cada uno de sus carcateres de forma individual, como si fuera un vector, asi:

Código Delphi [-]
Var
 CadenaDeTexto: String;
....
 CadenaDeTexto:='Hola';
 ShowMessage(CadenaDeTexto[1]) ; // lo cual mostraria un mensaje con la letra"H" (la primera posición es uno)

Según lo anterior, tu solución seria algo como:

Código Delphi [-]
  For i:= 1 to 4 do
   for j:= 1 to 4 do
      if Edit1.text○[i]=Edit2.text[j] then
          contadorderepetidos:= contadorderepetidos +1;

bye.
Responder Con Cita
  #4  
Antiguo 28-03-2011
TheBlackUnix TheBlackUnix is offline
Registrado
NULL
 
Registrado: mar 2011
Posts: 3
Poder: 0
TheBlackUnix Va por buen camino
Cita:
Empezado por gatosoft Ver Mensaje
Pues si quieres seguir con tu metodología, tendrías que hacer una comparación por cada posición que tengas, de forma tal que obtendrías un producto cartesiano...

comparar posicion 1 con posicion 1
comparar posicion 1 con posicion 2
comparar posicion 1 con posicion 3
comparar posicion 1 con posicion 4
comparar posicion 2 con posicion 1
....

Lo cual no aconsejo, ya que para esto existen las estructuras como FOR o While...

Adicionalmente hay que tener en cuenta que las cadenas de texto en Pascal permiten acceder a cada uno de sus carcateres de forma individual, como si fuera un vector, asi:

Código Delphi [-]
Var
 CadenaDeTexto: String;
....
 CadenaDeTexto:='Hola';
 ShowMessage(CadenaDeTexto[1]) ; // lo cual mostraria un mensaje con la letra"H" (la primera posición es uno)

Según lo anterior, tu solución seria algo como:

Código Delphi [-]
  For i:= 1 to 4 do
   for j:= 1 to 4 do
      if Edit1.text○[i]=Edit2.text[j] then
          contadorderepetidos:= contadorderepetidos +1;

bye.
Gracias !!!! Pude resolver mi problema..
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
Registros repetidos alegarreta SQL 6 16-04-2010 20:59:51
Contar numeros repetidos en un ListBox byfali Varios 4 23-02-2008 10:01:22
Registros repetidos enecumene PHP 9 01-02-2007 18:17:04
Datos repetidos... SQL... emeceuy Conexión con bases de datos 6 18-08-2003 15:10:41


La franja horaria es GMT +2. Ahora son las 23:31:22.


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