function [NAMES,DATAS,DATES]=loadTS(PATHNAME,FILENAME)
% function loadTS(PATHNAME,FILENAME)
% Функція зчитування даних з файлу
% Використовується три типи розширень:
% TXT - звичайний текстовий файл (ASCII-кодування)
% DAT - файл з даними (подібий формат до TXT)
% TS  - файл, аналогічного формату, проте до нього додаються два інших
%       файли - .DT з датами та .NM з іменами об"єктів
% Аргументи:
%   PATHNAME - шлях до файла
%   FILENAME - ім"я файла
% Результати:
%   прочитаний файл поміщається у глобальну змінну TS в поле data по
%   індексу TS.index
%   NAMES - вектор-стовпчик символьних рядків з іменами фірм
%   DATAS - масив значень, у яких дані окремої фірми розташовані у рядку
%   DATES - вектор-рядок дат, записаних у форматі "yyyymmdd"
% Обмеження:
%   1) змінні PATHNAME та FILENAME повинні містити реальний шлях та ім"я
%      файла
%

% читаємо з файлу дані
DATAS=load([PATHNAME FILENAME]);
% визначаємо розмір прочитаних даних
[m,n]=size(DATAS);
% якщо один стовпчик - робимо, щоб був один рядок
if (n==1) DATAS=DATAS'; [m,n]=size(DATAS); end
% якщо було прочитано файл з розширенням .TS - читаємо ще два файли - з
% роширенням .DT (дати) та .NM (імена)
% визначаємо розширення прочитаного файла
FILENAME2=FILENAME;
[mt,nt]=size(FILENAME2);
index=nt; while (FILENAME2(1,index)~='.') index=index-1; end
% порівнюємо розширення, що знайшли, із .TS
if (CmpStr('.ts',FILENAME2(1,index:nt))==0)
    % генеруємо ім"я файла з розширенням .DT
    FILENAME2=[FILENAME(1,1:index) 'dt'];
    % читаємо дати
    DATES=load([PATHNAME FILENAME2]);
    [mt2,nt2]=size(DATES); if (nt2==1) DATES=DATES'; end;
    % генеруємо ім"я файла з розширенням .NM
    FILENAME2=[FILENAME(1,1:index) 'nm'];
    % читаємо назви
    NAMES=load([PATHNAME FILENAME2]);
else
    % записуємо у DATES та NAMES довільні значення
    DATES2=datestr(date,29);
    DATES2=str2num([DATES2(1,1:4) DATES2(1,6:7) DATES2(1,9:10)]);
    DATES=zeros(1,n); DATES(1,1:n)=DATES2;
    NAMES(1:m,:)=FILENAME(1,1:index-1);
end
    
% після того як дані прочитано - записуємо їх у змінну TS
global TS;
TS.index=TS.index+1;
TS.data{TS.index}.datas=DATAS;
TS.data{TS.index}.dates=DATES;
TS.data{TS.index}.names=NAMES;

% очищуємо локальні змінні
clear m n FILENAME2 nt mt index mt2 nt2;