Ver Mensaje Individual
  #11  
Antiguo 04-08-2018
fcios fcios is offline
Miembro
 
Registrado: jul 2003
Posts: 108
Reputación: 21
fcios Va por buen camino
Question

Una ayuda más por favor
como busco en el primer campo recorriendo un array,
muestro con ERROR donde recibo error al compilar, gracias de antemano

Código Delphi [-]

type
TR = record
  UNO: string; // integer;
  DOS: CHAR;
end;
PTR = ^TR;

TR3 = record
  campo1: string;
  DOS: CHAR;
end;

aTR  = array of TR;
aTR3 = array of TR3;
PaTR = ^aTR;

//TRecods = array of pointer;
PPString = ^PString;

TRecord2 = pointer; //array of pointer;


function BuscarEnRecord4(aRecord: TRecord2; Buscar:string):integer;
var i:integer;
    s:string;
begin
  i := Length(aRecord); //  ERROR Incompatible Types
  for i:=0 to Length(aRecord) -1 do begin     //  ERROR Incompatible Types
    s := (PPString(@aRecord[i])^)^;  //  ERROR Array typed required
    if (PPString(@aRecord[i])^)^ = Buscar then begin    //  ERROR Array typed required
      Result := i;
      Exit;
    end;
  end;
  Result := -1; // no lo encontró
end;

procedure TForm1.BitBtn4Click(Sender: TObject);
var
  a1: aTR;
  a2: aTR3;
  Index: integer;

  PR2 :TRecord2;
begin
  SetLength(a1,3); // seteo a 3 items
  a1[0].UNO := 'Hola';
  a1[1].UNO := 'Carola';
  a1[2].UNO := 'Adios';

  SetLength(a2,3); // seteo a 3 items
  a2[0].campo1 := 'Hola2';
  a2[1].campo1 := 'Carola2';
  a2[2].campo1 := 'Adios2';

  // Buscamos
  PR2 := @a1;
  Index:= BuscarEnRecord4(PR2{@a1}, 'Adios');
  if Index >= 0 then
    ShowMessage('Eureca  ' + IntToStr(Index));

  Index:= BuscarEnRecord4(@a2, 'Adios2');
  if Index >= 0 then
    ShowMessage('Eureca  ' + IntToStr(Index));

end;
Responder Con Cita