var
  Storage :integer; // ñêëàä, èñïîëüçóåìûé ïðè ôèëüòðàöèè äàííûõ
  DATASET :TDataset; // ñîáñòâåííî, òàáëèöà

  maxbarcode :integer = 0;

  FileName :string = 'c:\temp\cas.plu';
  FileBody :string;
  //IntValue :integer;
  StrValue :string;
  StrValue1 :string;
  StrValue2 :string;
begin



  dataset.disablecontrols;
  try
    FileBody := '';
    dataset.first;
    while not dataset.eof do
    begin
       if (maxbarcode = 0)
          or (strtointprotected(dataset.fieldbyname('barcode').asstring)<=maxbarcode)
       then begin
         StrVAlue := conversionString( dataset.fieldbyname('name').asstring ,ctANSI2OEM);
         StrValue1 := StrPadRight(copy(StrValue,1,28),28);

         if length(StrValue) <=28
         then StrValue2 := strpadRight(' ',28)
         else StrValue2 :=  strpadRight(copy(StrValue,29,28),28);

         FileBody := FileBody
            + FORMATFLOAT('0000', strtointprotected( dataset.fieldbyname('barcode').asstring))
            + ' '+StrValue1
            + ' '+StrValue2
            + ' '+FORMATFLOAT('000000', dataset.fieldbyname('cena').asfloat*100)
            + ' 000 0000'
            + ' '+FORMATFLOAT('000000', strtointprotected( dataset.fieldbyname('barcode').asstring))
            + ' 00 000';


  (*
  4 áàéòà – íîìåð ÿ÷åéêè
  1 áàéò – ïðîáåë
  28 áàéò – íàèìåíîâàíèå 1 òîâàðà
  1 áàéò – ïðîáåë
  28 áàéò – íàèìåíîâàíèå 2 òîâàðà
  1 áàéò – ïðîáåë
  6 áàéò – öåíà òîâàðà
  1 áàéò – ïðîáåë
  3 áàéòà – ñðîê õðàíåíèÿ òîâàðà
  1 áàéò – ïðîáåë
  4 áàéòà – âåñ òàðû
  1 áàéò – ïðîáåë
  6 áàéò – èäåíòèôèêàöèîííûé êîä òîâàðà
  1 áàéò – ïðîáåë
  2 áàéòà – ãðóïïîâîé êîä òîâàðà
  1 áàéò – ïðîáåë
  3 áàéòà – íîìåð ñîîáùåíèÿ, â äàííîì ñëó÷àå - 000 (3 íóëÿ).
  *)
       end;

       dataset.next;
    end;

    FileBody := FileBody+ chr(26);

    StringToFile(Filename,FileBody);

  finally
    dataset.enablecontrols;
  end;


  createHint('Ôàéë "'+FileName+ '" ñôîðìèðîâàí.');
end.
