// ННГУ, ВМК, Курс "Методы программирования-2", С++, ООП
//
// ttext.h - Copyright (c) Гергель В.П. 04.09.2000, 19.01.2003
//
// Тексты - иерахическая структура представления

#ifndef __TTEXT_H
#define __TTEXT_H

#include <stack>
#include <fstream.h>
#include "datacom.h"
#include "textlink.h"

class   TText;
typedef TText * PTText;

class TText : public TDataCom {
  protected:
    PTTextLink pFirst;      // указатель корня дерева
    PTTextLink pCurrent;    // указатель текущей строки
    stack<PTTextLink> Path; // стек траектории движения по тексту
                            // (звено pCurrent в стек не включается)
    // поля и методы реализации
    stack<PTTextLink> St;   // стек для итератора
    PTTextLink GetFirstAtom(PTTextLink pl); // поиск первого атома
    void PrintText (PTTextLink ptl);        // печать текста со звена ptl
    PTTextLink ReadText(ifstream &TxtFile); // чтение текста из файла TxtFile
  public:
    TText(PTTextLink pl=NULL);
   ~TText() { pFirst = NULL; }
    PTText GetCopy();
    // навигация
    int GoFirstLink (void);  // переход к первой строке
    int GoDownLink  (void);  // переход к след. строке по Down
    int GoNextLink  (void);  // переход к след. строке по Next
    int GoPrevLink  (void);  // переход к пред. позиции в тексте
    // доступ
    string GetLine  (void);  // чтение текущей строки
    void SetLine (string s); // замена текущей строки
    // модификация
    void InsDownLine   (string s); // вставка строки в подуровень
    void InsDownSection(string s); // вставка раздела в подуровень
    void InsNextLine   (string s); // вставка строки в том же уровне
    void InsNextSection(string s); // вставка раздела в том же уровне
    void DelDownLine   (void);     // удаление строки в подуровене
    void DelDownSection(void);     // удаление раздела в подуровене
    void DelNextLine   (void);     // удаление строки в том же уровне
    void DelNextSection(void);     // удаление раздела в том же уровне
    // итератор
    int Reset      (void);         // установить на первую запись
    int IsTextEnded(void) const;   // таблица завершена ?
    int GoNext     (void);         // переход к следующей записи
    // Работа с файлами
    void Read (char *pFileName);   // ввод текста из файла
    void Write(char *pFileName);   // вывод текста в файл
    // Печать
    void Print(void);              // печать текста
};
#endif
// end of ttext.h
Хостинг от uCoz