unit uUtils; interface uses uDACDSDataTable, Classes; function getStrList(const ASource : TStringList; const pSep: String): String; function getArrList(const ASource : TStringList): Variant; function CompFec(FecIni : TDateTime; FecFin : TDateTime): Integer; implementation uses SysUtils, Variants, dialogs; function getStrList(const ASource : TStringList; const pSep: String): String; var Cadena : String; i: Integer; begin Cadena := ''; for i:=0 to (ASource.Count-1) do begin if i > 0 then Cadena := Cadena + pSep; Cadena := Cadena + ASource.Strings[i]; end; // showmessage(Cadena); Result := Cadena; end; function getArrList(const ASource : TStringList): Variant; var i, j: Integer; A: array of Variant; begin if (ASource.Count = 0) or (length(ASource.Strings[0]) = 0) then begin Result := Null; exit; end; j:= ASource.Count-1; if j > 0 then begin for i:=0 to j do begin SetLength(A, i+1); if (Length(ASource.Strings[i]) = 0) then A[i] := '' else A[i] := Copy(ASource.Strings[i], 0, Length(ASource.Strings[i])); end; Result := VarArrayOf(A); end else Result := Copy(ASource.Strings[j], 0, Length(ASource.Strings[j])); { if j > 0 then for i:=0 to j do showmessage(VarToStr(A[i])) else showmessage(VarToStr(Result)); } end; function CompFec(FecIni : TDateTime; FecFin : TDateTime): Integer; begin if FecIni = FecFin then Result := 0 else if FecIni > FecFin then Result := 1 else Result := 2; end; end.