// Пример 5. Пример работы со строками с помощью elem_of_array() и count_elem()

Primer05()
{
  // создаем объект класса для работы с текущей таблицей
  var CTabl=CreateObject("CurPrnTbl");
  int cr=CTabl.Count_Rcr(); // число рабочих записей в таблице   

  char str[250];

  int    tn;  // табельный номер
  string fio; // фамилия, имя, отчество

  string list[8];

  list[0]="Сумма основного дохода";
  list[1]="Сумма скидок";
  list[2]="Доход минус скидки";
  list[3]="Сумма вычетов";
  list[4]="Облагаемая сумма";
  list[5]="Начисленный налог";
  list[6]="Фактически удержанный налог";
  list[7]="Долг по налогу";

  // цикл по записям таблицы
  for (int zap=0; zap<cr; zap++)
  {
    tn =atoi(CTabl.TextS("C_FIO",zap));
    fio=CTabl.TextS("FIO",zap); 
    FreeSpaceString(fio,3,"");

    sprintf(str,"%7d %-40.40s", tn, fio); 
    print(str);
    print("---------------------------------------------");

    sprintf(str,"%s",CTabl.TextS("LIST",zap));
    FreeSpaceString(str,3,"");
    str[strlen(str)-1]=0;

    int celem=count_elem(str,',');
    if (celem<=8)
    {
      for (int i=1; i<=celem; i++)
      {
        char buf[250];
        elem_of_array(str,i,',',buf,100);
        FreeSpaceString(buf,3,"");

        char ts[250];
        sprintf(ts,"        %-30.30s %14s",list[i-1],buf);
        print(ts);
      }
      print("");
    }
  }

  return 0;
}
