Tema: Sorteo
Ver Mensaje Individual
  #7  
Antiguo 25-08-2014
Valee Valee is offline
Miembro
NULL
 
Registrado: jul 2014
Posts: 19
Reputación: 0
Valee Va por buen camino
Van a Notar que en la creación de la cola no están puestos los nombres, es porque yo se lo mando por un procedimiento que cree aparte para realizar el sorteo, ese procedimiento es:

Código Delphi [-]
unit LOAuxSorteo;

interface
  uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, ExtCtrls, LibreriaArchivosEnlace, LibCola, LOAux,
  RegEquipo1, Menu_Principal;

Procedure Repartir (var Me: TipoMe; var Eq1:TipoRegEquipo1; Puesto: TipoPuesto);

implementation

Procedure Repartir (var Me: TipoMe; var Eq1:TipoRegEquipo1; Puesto:TipoPuesto);
var
  pos: TipoPosicion;          RD,RAux: TipoRegDatos; RC: TipoRegControl;
  RDC: TipoRegColaD;          RCC: TipoRegColaC; Dato: Cadena;
  Control: Cadena;            Corte: boolean;
  i,j,n,m: TipoPosicion;
begin
m:=4; //cantidad de paises que tiene que haber por equipo
CrearMeEquipo1(Equipo1);
//Primero ordeno los primeros 8 puestos distribuyendolo en los grupos
//El puesto nro 1 va en el grupo A, el 2 en el grupo B......
case Puesto of //El puesto, una vez que sale del for, se va modificando de acuerdo al
  1: begin     //sorteo
      BuscarPuesto (Me,Puesto,pos);
      seek (Me.D,pos);
      read (Me.D,RD);
      if RD.Sorteado=false
      then
        begin
          seek (Me.D,pos);
          read (Me.D,RD);
          Eq1.Pais:= RD.Pais;
          Eq1.Clave:= RD.Clave;
          RD.Sorteado:= true;
          Insertar (Me,RD,Pos);
          InsertarInfo1(Equipo1,Eq1);
          Dato:= 'Grupo_A.Dat';
          Control:= 'Grupo_A.Con';
          CrearCola(Cola,Dato,Control);
          m:= m-1;
          //Sortear los 3 paises restantes
          corte:= false;
          n:=1;
          for i:=1 to m do
            begin
              while not corte do
              begin
                j:=Random (24);
                seek (Me.D,j);
                read (Me.D,RD);
                seek (Me.D, RD.Enlace);
                read (Me.D, RAux);
                if RAux.Sorteado= true
                then
                  begin
                    corte:= true;
                    Eq1.Clave:= RD.Clave;
                    Eq1.Pais:= RD.Pais;
                    InsertarInfo1(Equipo1,Eq1);
                    RAux.Sorteado:= true;
                    Insertar (Me,RAux,RD.Enlace);
                  end;
              end;
            end;
        end;
     end;
  2: begin     //sorteo
      BuscarPuesto (Me,Puesto,pos);
      seek (Me.D,pos);
      read (Me.D,RD);
      if RD.Sorteado=false
      then
        begin
          seek (Me.D,pos);
          read (Me.D,RD);
          Eq1.Pais:= RD.Pais;
          Eq1.Clave:= RD.Clave;
          RD.Sorteado:= true;
          Insertar (Me,RD,Pos);
          InsertarInfo1(Equipo1,Eq1);
          Dato:= 'Grupo_A.Dat';
          Control:= 'Grupo_A.Con';
          CrearCola(Cola,Dato,Control);
          m:= m-1;
          //Sortear los 3 paises restantes
          corte:= false;
          n:=1;
          for i:=1 to m do
            begin
              while not corte do
              begin
                j:=Random (24);
                seek (Me.D,j);
                read (Me.D,RD);
                seek (Me.D, RD.Enlace);
                read (Me.D, RAux);
                if RAux.Sorteado= true
                then
                  begin
                    corte:= true;
                    Eq1.Clave:= RD.Clave;
                    Eq1.Pais:= RD.Pais;
                    InsertarInfo1(Equipo1,Eq1);
                    RAux.Sorteado:= true;
                    Insertar (Me,RAux,RD.Enlace);
                  end;
              end;
            end;
        end;
     end;
  3: begin     //sorteo
      BuscarPuesto (Me,Puesto,pos);
      seek (Me.D,pos);
      read (Me.D,RD);
      if RD.Sorteado=false
      then
        begin
          seek (Me.D,pos);
          read (Me.D,RD);
          Eq1.Pais:= RD.Pais;
          Eq1.Clave:= RD.Clave;
          RD.Sorteado:= true;
          Insertar (Me,RD,Pos);
          InsertarInfo1(Equipo1,Eq1);
          Dato:= 'Grupo_A.Dat';
          Control:= 'Grupo_A.Con';
          CrearCola(Cola,Dato,Control);
          m:= m-1;
          //Sortear los 3 paises restantes
          corte:= false;
          n:=1;
          for i:=1 to m do
            begin
              while not corte do
              begin
                j:=Random (24);
                seek (Me.D,j);
                read (Me.D,RD);
                seek (Me.D, RD.Enlace);
                read (Me.D, RAux);
                if RAux.Sorteado= true
                then
                  begin
                    corte:= true;
                    Eq1.Clave:= RD.Clave;
                    Eq1.Pais:= RD.Pais;
                    InsertarInfo1(Equipo1,Eq1);
                    RAux.Sorteado:= true;
                    Insertar (Me,RAux,RD.Enlace);
                  end;
              end;
            end;
        end;
     end;
  4: begin     //sorteo
      BuscarPuesto (Me,Puesto,pos);
      seek (Me.D,pos);
      read (Me.D,RD);
      if RD.Sorteado=false
      then
        begin
          seek (Me.D,pos);
          read (Me.D,RD);
          Eq1.Pais:= RD.Pais;
          Eq1.Clave:= RD.Clave;
          RD.Sorteado:= true;
          Insertar (Me,RD,Pos);
          InsertarInfo1(Equipo1,Eq1);
          Dato:= 'Grupo_A.Dat';
          Control:= 'Grupo_A.Con';
          CrearCola(Cola,Dato,Control);
          m:= m-1;
          //Sortear los 3 paises restantes
          corte:= false;
          n:=1;
          for i:=1 to m do
            begin
              while not corte do
              begin
                j:=Random (24);
                seek (Me.D,j);
                read (Me.D,RD);
                seek (Me.D, RD.Enlace);
                read (Me.D, RAux);
                if RAux.Sorteado= true
                then
                  begin
                    corte:= true;
                    Eq1.Clave:= RD.Clave;
                    Eq1.Pais:= RD.Pais;
                    InsertarInfo1(Equipo1,Eq1);
                    RAux.Sorteado:= true;
                    Insertar (Me,RAux,RD.Enlace);
                  end;
              end;
            end;
        end;
     end;
  5: begin     //sorteo
      BuscarPuesto (Me,Puesto,pos);
      seek (Me.D,pos);
      read (Me.D,RD);
      if RD.Sorteado=false
      then
        begin
          seek (Me.D,pos);
          read (Me.D,RD);
          Eq1.Pais:= RD.Pais;
          Eq1.Clave:= RD.Clave;
          RD.Sorteado:= true;
          Insertar (Me,RD,Pos);
          InsertarInfo1(Equipo1,Eq1);
          Dato:= 'Grupo_A.Dat';
          Control:= 'Grupo_A.Con';
          CrearCola(Cola,Dato,Control);
          m:= m-1;
          //Sortear los 3 paises restantes
          corte:= false;
          n:=1;
          for i:=1 to m do
            begin
              while not corte do
              begin
                j:=Random (24);
                seek (Me.D,j);
                read (Me.D,RD);
                seek (Me.D, RD.Enlace);
                read (Me.D, RAux);
                if RAux.Sorteado= true
                then
                  begin
                    corte:= true;
                    Eq1.Clave:= RD.Clave;
                    Eq1.Pais:= RD.Pais;
                    InsertarInfo1(Equipo1,Eq1);
                    RAux.Sorteado:= true;
                    Insertar (Me,RAux,RD.Enlace);
                  end;
              end;
            end;
        end;
     end;
  6: begin     //sorteo
      BuscarPuesto (Me,Puesto,pos);
      seek (Me.D,pos);
      read (Me.D,RD);
      if RD.Sorteado=false
      then
        begin
          seek (Me.D,pos);
          read (Me.D,RD);
          Eq1.Pais:= RD.Pais;
          Eq1.Clave:= RD.Clave;
          RD.Sorteado:= true;
          Insertar (Me,RD,Pos);
          InsertarInfo1(Equipo1,Eq1);
          Dato:= 'Grupo_A.Dat';
          Control:= 'Grupo_A.Con';
          CrearCola(Cola,Dato,Control);
          m:= m-1;
          //Sortear los 3 paises restantes
          corte:= false;
          n:=1;
          for i:=1 to m do
            begin
              while not corte do
              begin
                j:=Random (24);
                seek (Me.D,j);
                read (Me.D,RD);
                seek (Me.D, RD.Enlace);
                read (Me.D, RAux);
                if RAux.Sorteado= true
                then
                  begin
                    corte:= true;
                    Eq1.Clave:= RD.Clave;
                    Eq1.Pais:= RD.Pais;
                    InsertarInfo1(Equipo1,Eq1);
                    RAux.Sorteado:= true;
                    Insertar (Me,RAux,RD.Enlace);
                  end;
              end;
            end;
        end;
     end;
  7: begin     //sorteo
      BuscarPuesto (Me,Puesto,pos);
      seek (Me.D,pos);
      read (Me.D,RD);
      if RD.Sorteado=false
      then
        begin
          seek (Me.D,pos);
          read (Me.D,RD);
          Eq1.Pais:= RD.Pais;
          Eq1.Clave:= RD.Clave;
          RD.Sorteado:= true;
          Insertar (Me,RD,Pos);
          InsertarInfo1(Equipo1,Eq1);
          Dato:= 'Grupo_A.Dat';
          Control:= 'Grupo_A.Con';
          CrearCola(Cola,Dato,Control);
          m:= m-1;
          //Sortear los 3 paises restantes
          corte:= false;
          n:=1;
          for i:=1 to m do
            begin
              while not corte do
              begin
                j:=Random (24);
                seek (Me.D,j);
                read (Me.D,RD);
                seek (Me.D, RD.Enlace);
                read (Me.D, RAux);
                if RAux.Sorteado= true
                then
                  begin
                    corte:= true;
                    Eq1.Clave:= RD.Clave;
                    Eq1.Pais:= RD.Pais;
                    InsertarInfo1(Equipo1,Eq1);
                    RAux.Sorteado:= true;
                    Insertar (Me,RAux,RD.Enlace);
                  end;
              end;
            end;
        end;
     end;
  8: begin     //sorteo
      BuscarPuesto (Me,Puesto,pos);
      seek (Me.D,pos);
      read (Me.D,RD);
      if RD.Sorteado=false
      then
        begin
          seek (Me.D,pos);
          read (Me.D,RD);
          Eq1.Pais:= RD.Pais;
          Eq1.Clave:= RD.Clave;
          RD.Sorteado:= true;
          Insertar (Me,RD,Pos);
          InsertarInfo1(Equipo1,Eq1);
          Dato:= 'Grupo_A.Dat';
          Control:= 'Grupo_A.Con';
          CrearCola(Cola,Dato,Control);
          m:= m-1;
          //Sortear los 3 paises restantes
          corte:= false;
          n:=1;
          for i:=1 to m do
            begin
              while not corte do
              begin
                j:=Random (24);
                seek (Me.D,j);
                read (Me.D,RD);
                seek (Me.D, RD.Enlace);
                read (Me.D, RAux);
                if RAux.Sorteado= true
                then
                  begin
                    corte:= true;
                    Eq1.Clave:= RD.Clave;
                    Eq1.Pais:= RD.Pais;
                    InsertarInfo1(Equipo1,Eq1);
                    RAux.Sorteado:= true;
                    Insertar (Me,RAux,RD.Enlace);
                  end;
              end;
            end;
        end;
     end;
end;

end;
end.
Responder Con Cita