Модуль "Kjava" (часть 3) - GetKJava

Рубрика: Исходники
Среда, 21 апреля 2010 г.
Просмотров: 136
последняя версия: 3.0.9 build 961 beta
от 07 декабря 2007 г.
function TfrmP2KKJava.GetKJava(ADrive: string; AImei: string; var ASize: integer): boolean;
var
  frmProgress: TfrmProgress;
  xMF: TMotoFileList;
  cntFiles, xsize, xatr, i: integer;
  isF: boolean;
  str, str2, substr: string;
  x, flg: word;
  f0: file of TJ2MEST_372;
  f1: file of TJ2MEST_373;
  f2: file of TJ2MEST_300;
  f3: file of TJ2MEST_E1000;
  f4: file of TJ2MEST_3x;
  f5: file of TJ2MEST_K1;
  f6: file of TJ2MEST_3x86;

begin
  NullKJava;
  result:= false;
  ASize:= 0;
  frmProgress:= TfrmProgress.Create(self);
  Screen.Cursor:= crHourGlass;
  try
  //~~~~~~~~~~~ найти J2MEST на диске /a ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    isF:= false; xsize:= 0;
    cntFiles:= p2k.GetFilesCount(Format('/%s/J2MEST',[ADrive]));
    if cntFiles > 0 then begin
                           SetLength(xmf, cntFiles);
                           if p2k.GetFileList(Format('/%s/J2MEST',[ADrive]), cntFiles, xmf, cntFiles, frmProgress)
                             then begin
                                    if xmf <> nil then begin
                                                         for i:=0 to High(xmf) do
                                                           begin
                                                             str:= xMF[i].Name;
                                                             if ADrive = 'a' then substr:= '/J2MEST' else substr:= AImei + '/J2MEST'; 
                                                             if Pos(substr, str) > 0  then begin isF:= true; xsize:= xMF[i].Size; break; end;
                                                           end;
                                                       end;
                                   end;
                        end;
  //~~~~~~~~~~~ скачать J2MEST с диска /a ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  str2:= GetTempPathEx + Format('J2MEST_%s',[ADrive]);
  if p2k.DownLoadFile(str, xsize, 0, str2, frmProgress)
    then begin
           //пропарсить файл
           i:= 0;
           case xKJType of
             0,1: begin
                   AssignFile(f0, str2);
                   Reset(f0);
                   repeat
                     Read(f0, xJ2MEST_372[i]);
                     flg:= xJ2MEST_372[i].MIDletType;
                     if (flg and KJAVA_MIDLETINSTALLED) <> 0 then begin
                                                                    Memo1.Lines.Add(xJ2MEST_372[i].AppName);
                                                                  end;
                     inc(i);
                   until eof(f0);
                   CloseFile(f0);
                 end;
             2 : begin
                   AssignFile(f1, str2);
                   Reset(f1);
                   repeat
                     Read(f1, xJ2MEST_373[i]);
                     flg:= convert_word(xJ2MEST_373[i].MIDletType);
                     if (flg and KJAVA_MIDLETINSTALLED) <> 0 then begin
                                                                    Memo1.Lines.Add(xJ2MEST_373[i].AppName);
                                                                  end;
                     inc(i);
                   until eof(f1);
                   CloseFile(f1);
                 end;
             3 : begin
                   AssignFile(f2, str2);
                   Reset(f2);
                   repeat
                     Read(f2, xJ2MEST_300[i]);
                     flg:= xJ2MEST_300[i].MIDletType;
                     if (flg and KJAVA_MIDLETINSTALLED) <> 0 then begin
                                                                    Memo1.Lines.Add(xJ2MEST_300[i].AppName);
                                                                  end;
                     inc(i);
                   until eof(f2);
                   CloseFile(f2);
                 end;
             4 : begin
                   AssignFile(f3, str2);
                   Reset(f3);
                   repeat
                     Read(f3, xJ2MEST_E1000[i]);
                     flg:= xJ2MEST_E1000[i].MIDletType;
                     if (flg and KJAVA_MIDLETINSTALLED) <> 0 then begin
                                                                    Memo1.Lines.Add(xJ2MEST_E1000[i].AppName);
                                                                  end;
                     inc(i);
                   until eof(f3);
                   CloseFile(f3);
                 end;
             5 : begin
                   AssignFile(f4, str2);
                   Reset(f4);
                   repeat
                     Read(f4, xJ2MEST_3x[i]);
                     flg:= convert_word(xJ2MEST_3x[i].MIDletType);
                     if (flg and KJAVA_MIDLETINSTALLED) <> 0 then begin
                                                                    Memo1.Lines.Add(xJ2MEST_3x[i].AppName);
                                                                  end;
                     inc(i);
                   until eof(f4);
                   CloseFile(f4);
                 end;
             6 : begin
                   AssignFile(f5, str2);
                   Reset(f5);
                   repeat
                     Read(f5, xJ2MEST_K1[i]);
                     flg:= convert_word(xJ2MEST_K1[i].MIDletType);
                     if (flg and KJAVA_MIDLETINSTALLED) <> 0 then begin
                                                                    Memo1.Lines.Add(xJ2MEST_K1[i].AppName);
                                                                  end;
                     inc(i);
                   until eof(f5);
                   CloseFile(f5);
                 end;
             7 : begin
                   AssignFile(f6, str2);
                   Reset(f6);
                   repeat
                     Read(f6, xJ2MEST_3x86[i]);
                     flg:= convert_word(xJ2MEST_3x86[i].MIDletType);
                     if (flg and KJAVA_MIDLETINSTALLED) <> 0 then begin
                                                                    Memo1.Lines.Add(xJ2MEST_3x86[i].AppName);
                                                                  end;
                     inc(i);
                   until eof(f6);
                   CloseFile(f6);
                 end;
           end;
         end;
  finally
    frmProgress.free;
    result:= isF;
    ASize:= xsize;
    Screen.Cursor:= crDefault;
  end;  
end;
Rambler's Top100