Модуль "OtherFeatures" (часть 2) - FillOutlookList

Рубрика: Исходники
Среда, 21 апреля 2010 г.
Просмотров: 157
последняя версия: 3.0.9 build 961 beta
от 07 декабря 2007 г.
procedure TfrmP2K_OtherFeatures.FillOutlookList;
var
  i,k: integer;
  f: textfile;
  AFileName: string;
  cnt: integer;
  tmp: string;
  str: string;
  //xFunctList: array of TFunctionStr;
  cntGrp: integer;
  sl: TStrings;
  xRazdel: TStringList;

begin
  IsOtherFeaturesFill:= true;
  AFileName:= ExePath + 'OtherFeatures\' + OtherFeaturesFile;
  if FileExists(AFileName) then
    begin
      AssignFile(f, AFileName);
      Reset(f);
      cnt:= 0;
      repeat
        Readln(f, tmp);
        //str:= ExtractStr(tmp, ';');
        if (tmp <> '') and (Pos('!!!', tmp) = 0)
          then  inc(cnt);
      until eof(f);
      xFunctList:= nil;
      SetLength(xFunctList, cnt);
      Reset(f);
      cnt:= 0;
      try
        repeat
          Readln(f, tmp);
          if (tmp <> '') and (Pos('!!!', tmp) = 0)
            then
              begin
                str:= ExtractStr(tmp, ';');
                xFunctList[cnt].Partition:= str;
                str:= ExtractStr(tmp, ';');
                xFunctList[cnt].seem:= str;
                str:= ExtractStr(tmp, ';');
                xFunctList[cnt].rec:= str;
                str:= ExtractStr(tmp, ';');
                xFunctList[cnt].offset:= str;
                str:= ExtractStr(tmp, ';');
                xFunctList[cnt].bit:= str;
                str:= ExtractStr(tmp, ';');
                xFunctList[cnt].title:= str;
                str:= ExtractStr(tmp, ';');
                xFunctList[cnt].von:= str;
                str:= ExtractStr(tmp, ';');
                xFunctList[cnt].voff:= str;
                xFunctList[cnt].Checked:= false;
                inc(cnt);
              end;  
        until eof(f);
      finally
        CloseFile(f);
      end;
      spSkinListBox1.Clear;
      xRazdel:= TStringList.Create;
      xRazdel.Sorted:= true;
      xRazdel.Duplicates:= dupIgnore;
      for i:=0 to High(xFunctList) do
        begin
          str:= xFunctList[i].Partition;
          if str <> '' then
            begin
              xRazdel.Add(str);
            end;
       end;
      cntGrp:= xRazdel.Count;
      for i:= 0 to cntGrp-1 do
        begin
          //olg := advoutlooklist1.AddGroup(xRazdel[i]);
          spSkinListBox1.Items.Add(xRazdel[i]);
        end;
      spSkinListBox1.ItemIndex:= 0;
      spSkinListBox1.OnListBoxClick(spSkinListBox1);
      xRazdel.Free;
    end;
end;
Rambler's Top100