Главная · Поиск книг · Поступления книг · Top 40 · Форумы · Ссылки · Читатели

Настройка текста
Перенос строк


    Прохождения игр    
Stoneshard |#7| Oblivion
Stoneshard |#6| Rotten Willow Tavern
Stoneshard |#5| Mannshire
Stoneshard |#4| Plot and Death

Другие игры...


liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня
Rambler's Top100
Образование - Стивенс Ал. Весь текст 495.21 Kb

Техника программирования на турбо-С

Предыдущая страница Следующая страница
1 ... 18 19 20 21 22 23 24  25 26 27 28 29 30 31 ... 43
       {"  ","VA","NC","SC","GA","FL",0};
   char **st = states;

   while (*st)
       if (strcmp(*st++, bf) == 0)
           return OK;
   error_message("Недопустимое состояние ");
   return ERROR;
}


/*-------выдает сегодняшнюю дату------*/
void help_date(bf)
char *bf;
{
   struct date dat;

   getdate(&dat);
   sprintf(bf, "%02d%02d%02d",
           dat.da_day, dat.da_mon, dat.da_year % 100);
 }




Листинг 8.4: order.prj

order
ordent (twindow.h)
entry (twindow.h, keys.h)
thelp (twindow.h, keys.h)
twindow (twindow.h, keys.h)
ibmpc.obj


                        Резюме
-----------------------------------------------------------------

     Оконная библиотека   содержит   сейчас   средства   создания
контекстно-зависимой  help-информации  и форматного ввода данных.
Эти средства вы можете с успехом использовать при создании систем
интерактивного  ввода  данных.  Шаблон  ввода данных поддерживает
фиксированные форматы  вводимых  данных.  В  Главе  9  в  функции
текстового  редактора добавлены новые,  одна из них - возможность
использования окна для ввода и модификации  произвольного текста.


                            ГЛАВА 9
                            -------

                    Оконный текстовый редактор
-----------------------------------------------------------------

     В   Главе   8    обсуждалось   применение    видеоокон   для
использования  ввода данных в поля формо-ориентированного шаблона
ввода данных. Естественно, что  не  все поля данных имеют заранее
определенный, фиксированный формат.  Многие  поля и файлы состоят
из текстов свободной, неопределенной  формы и последовательности,
например, слова в книге или  комментарии  к  программе. Текстовые
процессоры и редакторы текстов позволяют вам строить    текстовые
файлы,  игнорируя формат исходных данных (текста),   однако, если
вы создаете  действительно  интегрированную  систему , то  доступ
к функциям  ввода текста  в вашу  программу и  его редактирование
может  вам  понадобиться  непосредственно  из   вашей  прикладной
программы.

     Эта   глава   является   предварительным  описанием оконного
текстового  редактора,  который использует видеоокна  для ввода и
модификации  текста  точно  так  же,   как  большинство  программ
редактирования текста и текстовых процессоров.  Эта отличительная
черта оконного  редактора используется  при  создании программных
систем, в которых требуется ввод текста произвольной формы. Пакет
Sidekick является примером  системы,  в которой имеется сходный с
рассматриваемым в этой главе редактор текстов.  Пример программы,
представленный  в  этой  главе,  вполне  может  использоваться  в
качестве  редактора текстов  в  системах  типа  Sidekick. Оконный
текстовый  редактор  может  также  применяться  в  системах ввода
данных,   когда  требуется   ввести  в   качестве   данных  текст
произвольной  формы,  занимающий  более одной  строки. Прикладная
программа  типа  программы  ввода  данных  в  заданном  порядке с
помощью шаблона ввода данных  из Главы 8  может потребовать ввода
поля,  содержащего описательный текст. Это требование можно легко
реализовать,  применяя  оконный текстовый  редактор.  Многие базы
данных   оперируют   с   данными,   характеризующимися   наличием
поясняющего  их  текста,   различных  описаний  или  определенной
терминологии предметной области. При использовании шаблонов ввода
данных  поля  данных  такого типа могут с  успехом обрабатываться
оконным  редактором.   вы  также  можете  использовать  текстовый
редактор для подготовки текстов help-окон в вашей программе путем
обработки файла описаний help-окон, описанного в Главе 7.

     Для использования  текстового  редактора  программа  вначале
устанавливает окно,  а затем резервирует буфер,  в котором  будут
храниться   и  редактироваться  данные,  вводимые  пользователем.
Текстовый   буфер   редактора    представляет    собой    массив,
резервирующий  память,  достаточную  для  хранения фиксированного
числа  строк,  каждая  из  которых  равна  ширине  области  окна,
отводимой  для ввода и редактирования текста.  Например,  если вы
установили ширину окна в 42  символа,  то  область  текста  будет
иметь ширину 40 символов (рамка окна занимает 2 позиции). Если вы
в этом случае отвели под буфер 4000 символов (длина  массива), то
редактор   сможет  обрабатывать  одновременно  только  100  строк
текста,  так как буфер может содержать не более 100 строк  текста
по  40  символов  в  строке.  При  вводе  пользователем текста он
накапливается в буфере без специальных символов новой строки (\n)
и табуляции (\t).

     Если текстовый буфер уже содержит текст, который был занесен
в него при первом обращении к редактору,  то  этот  старый  текст
отображается на экране дисплея в виде строк фиксированной длины в
соответствии с описанием окна.


             Команды тестового редактора
-----------------------------------------------------------------

     Текстовый редактор    содержит    полный    набор     команд
редактирования.  Команды  сведены  в  один  перечень и могут быть
отображены на экране дисплея в виде,  представленном  на  рисунке
9.1.   В   прошлой  главе  была  рассмотрена  программа,  которая
использовала help-окно для выдачи различной информации. Help-окно
отображается  при  нажатии  клавиши  .  Точно  такой же прием
используется для отображения набора команд редактора. Большинство
из команд редактирования закреплено за функциональными клавишами,
остальные используют комбинации клавиш  или  с другими
клавишами. Ниже будут рассмотрены все команды оконного текстового
редактора.

ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД¬
¦ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД¬    ¦
¦¦ДДДДДДCursor MovementДДДДДДДДДДДДДДPage MovementДДДДДДДД ¦    ¦
¦¦arrows = move text cursor  Ctrl-Home = Beginning of File ¦    ¦
¦¦Ctrl-T = Top of Window     Ctrl-End  = End of File       ¦    ¦
¦¦Ctrl-B = Bottom of Window  PgUp      = Previous Page     ¦    ¦
¦¦Ctrl ->= Next Word         PgDn      = Next Page         ¦    ¦
¦¦Ctrl <-= Previons Word                                   Г¬   ¦
¦¦Home   = Beginning of Line ДДДДДДДДEditor controlДДДДДДД ¦¦   ¦
¦¦End    = End of Line       Scroll Lock = No Auto Reform  ¦¦   ¦
¦¦                                                         ¦¦   ¦
¦¦                                                         ¦¦   ¦
¦¦ДДДДДДДBlock controlsДДДДДДДДДДДДДДДEdit commandsДДДДДДД ¦¦   ¦
¦¦F4  = Form Paragraph       F2 or Esc = Done              ¦¦   ¦
¦¦F5  = Mark Block Beginning F3        = Erase File        ¦¦   ¦
¦¦F6  = Mark Block End       Ins       = Togle Insert Mode ¦¦   ¦
¦¦F7  = Move Block           Del       = Delete Char       ¦¦   ¦
¦¦F8  = Copy Block           <--       = Rubout            ¦¦   ¦
¦¦F9  = Delete Block         Ctrl-D    = Delete Word       ¦¦   ¦
¦¦F10 = Unmark Block         Alt-D     = Delete Line       ГЩ   ¦
¦¦ [Help] to return                                        ¦    ¦
¦АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ    ¦
¦                                                               ¦
¦                                                               ¦
¦                                                               ¦
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ

          Рис. 9.1. Команды текстового редактора


                  Управление курсором
-----------------------------------------------------------------

     Используя клавиши управления курсором,  его можно перемещать
по всему экрану.  Если вы переместили курсор в начало или в конец
экрана  и  продолжаете нажимать клавишу перемещения курсора вверх
(или вниз), то тем самым вы инициируете скроллинг текста, который
будет продолжаться до достижения начала (конца) буфера данных.

  -   и  перемещают буфер в начало и конец экрана;

  -  перемещает курсор в начало следующего
          слова в буфере хранения текста;
  
 -  перемещает курсор в  начало предыдущего
          слова в буфере хранения текста;

  - <курсор  в  начало  экрана>  позиционирует  курсор  в  начало
          текущей строки;

  - <КОН> позиционирует курсор в конец текущей строки;

  - <ТАБ> перемещает курсор к следующей позиции табуляции;

  - <РЕГИСТР/ТАБ> перемещает курсор к предыдущей позиции
          табуляции.


                  Постраничная работа
-----------------------------------------------------------------

     - <Страница  вверх>  и  <Страница  вниз> перемещает текст на
           страницу вперед или назад;

     -   устанавливает  текст  на
          первую  страницу,  позиционируя курсор в первой позиции
          первой строки текста;

     -  устанавливает текст  на  последнюю  страницу  в
          буфере  и позиционирует курсор в первой позиции строки,
          которая следует за последней строкой текста в буфере.



               Команды работы с блоками текста
-----------------------------------------------------------------

     Текстовый редактор  имеет  в  своем составе команды работы с
блоками текста.  Эти  команды  позволяют  оперировать  с  блоками
текстов, которые определены ограничительными линиями.

     -  формирует параграф из текста, помеченного как блок;

     -  помечает   первую  строку  блока.  Строка  текста,  в
            которой находится курсор,  становится первой  строкой
            блока.  Текст, образующий блок, отображается в цвете,
            определяемом значением параметра ACCENT  для  данного
            окна;

     -  помечает последнюю строку блока текста;

     -  перемещает   весь  блок  текста  к  строке текста,  в
            которой   расположен   в   данный   момент    курсор.
            Перемещение  блока  происходит  без  его  разрушения;
            пространство   для   размещения   блока    выделяется
            автоматически;

     -  копирует  блок к текущей строке текста.  Отличие этой
            команды от предыдущей в том, что настоящая команда не
            приводит  к разрушению блока-оригинала на его прежнем
            месторасположении в тексте.

     -  уничтожает   блок.  Строки   текста,   следующие   за
            удаленным   блоком,   перемещаются   вверх,  заполняя
            освободившееся пространство в тексте;

     -  отменяет маркировку фрагмента текста как блока.

                Команды редактирования
-----------------------------------------------------------------

     После того,  как  вы  ввели  текст и осуществили перемещение
курсора, редактор автоматически переформатирует текущий параграф.
Редактор   определяет   параграф   как   группу   строк   текста,
начинающуюся   с   первой   строки,   состоящей   из    пробелов.
Переформатирование  параграфов  может  подавляться  путем нажатия
перечисленных ниже клавиш в режиме (Scroll Lock):

     -  уничтожает весь текст, хранящийся в буфере "Команда".
         Команда требует подтверждения;

     -   переключает режимы работы редактора Вставка/Замена,
         а также  изменяет  форму  курсора,  индицирующего  режим
         работы редактор;

     -   уничтожает  символ,  находящийся  после  курсора  в
         тексте,  перемещая весь текст в строке на  одну  позицию
         влево;

     - Забой    (длинная стрелка в правом верхнем углу
         клавиатуры)   уничтожает   символ,   находящийся   левее
         курсора,  перемещая  сам  курсор и весь следующий за ним
         текст строки на одну позицию влево;

     -   ()  уничтожает  слово,   перед   которым
         позицирован курсор;

     -    уничтожает   строку   текста,   в   которой  был
         предварительно позицирован курсор;
Предыдущая страница Следующая страница
1 ... 18 19 20 21 22 23 24  25 26 27 28 29 30 31 ... 43
Ваша оценка:
Комментарий:
  Подпись:
(Чтобы комментарии всегда подписывались Вашим именем, можете зарегистрироваться в Клубе читателей)
  Сайт:
 
Комментарии (1)

Реклама