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; CrearMeEquipo1(Equipo1);
case Puesto of 1: begin 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;
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 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;
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 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;
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 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;
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 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;
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 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;
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 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;
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 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;
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.