CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Borland C++ 3.0
Borland C++ 3.0
Глава 7. Создание таблицы строк ----------------------------------------------------------------- Таблицы строк представляет собой таблицу, которая содержит сообщения об ошибках, подсказки и другие текстовые строки, кото- рые должна выводить ваша прикладная программа. В файл проекта вы можете записать несколько строковых таблиц. Например, вы можете задать строки, связанные со всеми меню, вызываемыми командами ме- ню File. Определение строк текста как отдельного ресурса облегчает редактирование текстовых строк без изменения исходного кода. Нап- ример, если вам нужно перевести прикладную прогрaмму Windows на другой язык, размещение текстовых строк в таблицах строк упрощает процесс. (Тем не менее вам придется переводить текст в других ре- сурсах, таких как диалоговые окна.) При работе с таблицами строк нужно выполнить следующие четы- ре основных задачи: - запуск редактора строк; - создание и редактирование таблиц строк; - сохранение таблицы строк; - проверка таблицы строк. В конце данной главы вы найдете краткое руководство, которое позволяет вам выполнить шаги по созданию и редактированию таблицы строк. Запуск редактора строк ----------------------------------------------------------------- Характер запуска редактора строк зависит от того, хотите вы создать новую строку или редактировать существующую. Для запуска строкового редактора с целью создания новой таб- лицы строк сделайте следующее: 1. Откройте проект, к которому вы хотите добавить таблицу строк. 2. Выберите команду Resource¦New (Ресурс¦Новый). 3. В диалоговом окне New Resource (Новый ресурс) выберите в блоке списка Resource Type (Тип ресурса) STRINGTABLE, за- тем выберите кнопку OK. ----T-----------------------------------------------------------¬ ¦ - ¦ New resource ¦ +---+-------------------------------------------T---------------+ ¦ Resource type ¦ ¦ ¦---------------------------------------------¬ ¦ ------------¬ ¦ ¦¦ STRINGTABLE ¦ ¦ ¦ _ ¦-¦ ¦¦ ----------------------------------------T-¬¦ ¦ ¦ V OK ¦-¦ ¦¦ ¦ FONT ¦^¦¦ ¦ L-------------¦ ¦¦ ¦ ICON +-+¦ ¦ ------------¦ ¦¦ ¦ MENU ¦-¦¦ ¦ ¦ ¦¦ ¦ RCDATE ¦-¦¦ ¦ ¦ ¦¦ ¦ ¦-¦¦ ¦ ------------¬ ¦ ¦¦ ¦ ¦-¦¦ ¦ ¦ ¦-¦ ¦¦ +---------------------------------------+-+¦ ¦ ¦ X Cancel ¦-¦ ¦¦ ¦ ¦v¦¦ ¦ L-------------¦ ¦¦ L---------------------------------------+--¦ ¦ ------------¦ ¦L--------------------------------------------- ¦ ¦ ¦ ¦ ¦ ¦ ¦ ------------¬ ¦ ¦ Place resource in ¦ ¦ . New ¦-¦ ¦ ------------------------------------------¬ ¦ ¦ :: Type ¦-¦ ¦ ¦ ---------------------------------------¬¦ ¦ L-------------¦ ¦ ¦ ¦ myproj.rc ¦¦ ¦ ------------¦ ¦ ¦ L---------------------------------------¦ ¦ ¦ ¦ L------------------------------------------ ¦ ¦ ¦ ¦ ------------¬ ¦ ¦ ¦ ¦ ¦-¦ ¦ ¦ ¦ ? Help ¦-¦ ¦ ¦ L-------------¦ ¦ ¦ ------------¦ ¦ ¦ ¦ L-----------------------------------------------+---------------- Рис. 7.1 Диалоговое окно New Resource с подсвеченным элемен- том STRINGTABLE Пакет разработчика ресурсов открывает строковый редактор и помещает в ваше окно проекта ссылку на новую строковую таблицу. Чтобы запустить строковый редактор для редактирования су- ществующей строковой таблицы, сделайте следующее: 1. Откройте проект, содержащий строковую таблицу, которую вы хотите редактировать. 2. Найдите строковую таблицу в окне проекта. 3. Дважды щелкните кнопкой "мыши" на записи таблицы или вы- делите ее и выберите команду Resource¦Edit (Ресурс¦Редак- тирование). Выбранная вами таблица строк выводится в строковом редакто- ре. Работа с таблицами строк ----------------------------------------------------------------- Когда вы открываете строковый редактор, выводится таблица строк. Если вы просто создаете новую таблицу, вы не увидите ника- ких записей строк, поскольку вы их еще не ввели. Если вы редакти- руете существующую строковую таблицу, то вы увидите записи строк, которые могут выглядеть, например, следующим образом: ----T---------------------------------------------------T---T---¬ ¦ - ¦ STRINGTABLE : sth_FineNew ¦ v ¦ ^ ¦ +---+-------------T-----------------T-------------------+---+-T-+ ¦ ID Source ¦ ID Value ¦ String ¦^¦ +=================+-----------------+-------------------------+-+ ¦ sth_FileNew ¦ 1 ¦ Help on New ¦-¦ +=================+-----------------+-------------------------+-¦ ¦ sth_FileOpen ¦ 2 ¦ Help on Open ¦-¦ +-----------------+-----------------+-------------------------+-¦ ¦ sth_FileSave ¦ 3 ¦ Help on Save ¦-¦ +-----------------+-----------------+-------------------------+-¦ ¦ sth_FileSaveAs ¦ 4 ¦ Help on SaveAs ¦-¦ +-----------------+-----------------+-------------------------+-¦ ¦ sth_FilePrint ¦ 5 ¦ Help on Print ¦-¦ +-----------------+-----------------+-------------------------+-¦ ¦ sth_FileExit ¦ 100 ¦ Help on Exit ¦-¦ +-----------------+-----------------+-------------------------+-¦ ¦ sth_File ¦ 8 ¦ Help on ¦-¦ +-----------------+-----------------+-------------------------+-¦ ¦ sth_FileUndo ¦ 9 ¦ Help on Undo ¦-¦ +-----------------+-----------------+-------------------------+-¦ ¦ sth_FileCut ¦ 10 ¦ Help on Cut ¦-¦ +-----------------+-----------------+-------------------------+-¦ ¦ sth_FileCopy ¦ 11 ¦ Help on Copy ¦-¦ +-----------------+-----------------+-------------------------+-¦ ¦ sth_FilePaste ¦ 12 ¦ Help on Paste ¦-¦ +-----------------+-----------------+-------------------------+-¦ ¦ sth_FileClear ¦ 13 ¦ Help on Clear ¦-¦ +-----------------+-----------------+-------------------------+-¦ ¦ sth_FileDelete ¦ 14 ¦ Help on Delete ¦-¦ +-----------------+-----------------+-------------------------+-¦ ¦ sth_Edt ¦ 15 ¦ Help on Edt ¦-¦ +-----------------+-----------------+-------------------------+-+ ¦ stgh_ViewAll ¦ 16 ¦ Help on ViewAll ¦v¦ +-T---------------+-----------------+-----------------------T-+-+ ¦>¦---------------------------------------------------------¦<¦ ¦ L-+---------------------------------------------------------+-+-- Рис. 7.2 Строковый редактор с записями таблицы строк ID Source - исходный идентификатор; ID Value - значение идентификатора; String - строка Каждая запись строковой таблицы включает в себя запись ис- ходного идентификатора, значения идентификатора и саму строку. Перед описанием ввода информации в строковую таблицу мы расскажем немного о том, как Windows работает со строковыми ресурсами. Windows и строки ----------------------------------------------------------------- Каждая строка в таблице строк должна иметь уникальный цело- численный идентификатор. Windows объединяет строки в сегменты, которые содержат по 16 строк каждый. Строки с идентификаторами от 0 до 15 составляют первый сегмент, строки с идентификаторами от 16 до 32 - второй и т.д. При компиляции ресурсов строки добавля- ются к выполняемому файлу в сегментах. Вы время выполнения эти сегменты загружаются в память. Когда вашей прикладной прoграмме требуется конкретная стро- ка, Windows загружает в память весь строковый сегмент, содержащий данную строку. Для чего нужно знать о том, как Windows работает со строками? Это позволит вам при аккуратном присваивании иденти- фикаторов уменьшить объем памяти, которая требуется вашей прик- ладной программе. Предположим, вы определили для своей прикладной программы 32 строки. Если вы присваиваете этим строкам идентификаторы с 0 по 31, к вашему выполняемому файлу добавляется два строковых сегмен- та. Каждый раз, когда ваша прикладной программе требуется строка, в память будут загружаться 16 строк, даже если некоторые строки не нужны. Лучший способ состоит в логическом объединении строк, с ну- мерацией их от 0 до 4. Если вторая часть вашей прикладной прог- раммы требует 9 строк, поместите их во второй сегмент, нумеруя строки с 16 по 24. После этого Windows может загрузить вместе все нужные строки без загрузки других строк, которые не требуются. Хотя при этом все равно будут загружаться все сегменты, неисполь- зуемый идентификатор занимает только один байт памяти. Таким об- разом, если вы поместите в сегмент 5 строк, неиспользуемые иден- тификаторы будут занимать только 11 байт памяти. Если загруженный сегмент содержит 11 неиспользуемых строк,объем задействованной памяти будет существенно больше. При задании уникального идентификатора строки вы можете ис- пользовать целое значение или алфавитно-цифровой идентификатор (#define в Си или С++ или описание константы в Паскале), заменяю- щий это целое значение. Если вы для облегчения восприятия иденти- фикаторов выбираете алфавитно-цифровые идентификаторы, нужно пом- нить о том, что вам возможно потребуется сохранить идентификаторы в файле идентификаторов (файл заголовка в Си и С++ либо модуль или включаемый файл в Паскале). Перед добавлением идентификаторов в строковым редакторе убедитесь, что эти файлы существуют. Теперь вы имеете некоторое представление о том, как Windows работает со строковыми ресурсами, как задать уникальный идентифи- катор строки, и как ввести в строковую таблицу другую строку. Ввод новой строки ----------------------------------------------------------------- Обратите внимание на заголовки в верхней части строкового редактора: 1. Столбец ID Source (Исходный идентификатор) содержит иден- тификатор строки. При присваивании идентификатора он вы- водится в данном столбце. В противном случае вы увидите целочисленный идентификатор. 2. Столбец ID Value (Значение идентификатора) содержит целочисленный идентификатор строки. 3. Столбец String (Строка) - это текстовая строка. Она хр а- нится в строковой таблице как строка Паскаля, то есть тексту строки предшествует байт длины. Строка может со- держать до 255 символов. Чтобы ввести в строковую таблицу новую строку, сделайте сле- дующее: - Если это новая таблица, просто начните вводить информацию для строки, как описывается шагами 3, 4 и 5 (см, ниже). - Если вы добавляете к таблице строку, начните с шага 1: 1. Выделите строку над той строкой, куда вы хотите включить новую строку. 2. Для выбора команды Stringtable¦New Item (Строковая табли- ца¦Новый элемент) нажмите клавишу Ins. 3. Введите значение поля ID Source или примите число, поме- щенное в это поле строковым редактором. На основе введен- ного вами значения ID Source строковый редактор находит соответствующее целочисленное значение для ID Value.: Примечание: Чтобы восстановить для ID Source исход- ное значение, перед нажатием клавиши Tab или Enter наж- мите Esc. Вы можете ввести целое значение или алфавитно-цифровой идентификатор, заменяющий это значение. Если вы введете алфавитно-цифровой идентификатор, не представляющий цело- го значения, то строковый редактор выводит вам подсказку для создания нового идентификатора, затем нужно нажать клавишу Enter или выбрать команду меню. Для создания идентификатора сделайте следующее: a) Выберите Yes (Да). Выводится диалоговое окно New Identifier (Новый идентификатор). б) Введите новое значение идентификатора и задайте, где вы хотите записать идентификатор. Выберите OK. 4. Нажмите клавишу Tab или щелкните кнопкой "мыши" под String и введите текстовую строку. Примечание: Чтобы восстановить для поля String ис- ходное значение, перед нажатием клавиши Tab или Enter нажмите Esc. Каждая строка может иметь длину до 255 символов и содер- жать любые управляющие последовательности Си, включая следующие: \n (новая строка), \t (табуляция), \r (возврат каретки), \\ (обратная косая черта), \" (двойная кавыч- ка). Когда Пакет разработчика ресурсов обнаруживает в строке управляющую последовательность Си, он генерирует в объек- тном кода соответствующую шестнадцатиричное значение ASCII, а корректно интерпретировать данное значение должна ваша программа. Например, когда компилятор встречает пос- ледовательность \b\040\x7F, он создает шестнадцатиричную последовательность 07207F. Ваша программа должна интерп- ретировать данную последовательность, как последователь- ность символов ASCII BEL, SPC и DEL, либо присвоить этим шестнадцатиричным значениям другой смысл. 5. Нажмите клавишу Enter (чтобы воспринялось новое значение) или Ins (чтобы воспринять значение и включить новое). Редактирование существующих строк ----------------------------------------------------------------- Строковый редактор облегчает изменение отдельных строк. Что- бы выделить строку с помощью "мыши", щелкните кнопкой "мыши" на той строке, которую вы хотите редактировать. По таблице можно пе- ремещаться с помощью клавиатуры, нажимая клавиши Tab, клавиши "стрелка вверх" и "стрелка вниз". Переместите курсор на ту стро- ку, которую вы хотите редактировать. Изменение строки ----------------------------------------------------------------- Для любой строки вы можете стереть значения ID Source и String и ввести новые значения. Можно также непосредственно изме- нить то, что выводится в поле ID Value, но строковый редактор об- новляет это значение в зависимости от того, что вы наберете в по- ле ID Source. Восстановление измененных значений строк ----------------------------------------------------------------- Для восстановления измененных значений строк вы можете ис- пользовать средства Undo (Отмена) и Redo (Повтор). Для отмены из- менения выберите команду Edit¦Undo (Редактирование¦Отмена) или нажмите клавиши Alt+Backspace. Если вы отмените слишком много из- менений, для восстановления изменений, которые вы отменили, выбе- рите команду Edit¦Redo (Редактирование¦Повтор) или нажмите клави- ши Shift+Alt+Backspace. Удаление строки ----------------------------------------------------------------- Для удаления строки выделите строку и выберите команду Edit¦ Cut (Редактирование¦Вырезание) или Stringtable¦Delete Stringtable Item (Строковая таблица¦Удаление элемента строковой таблицы). Редактирование записи ресурса строковой таблицы ----------------------------------------------------------------- Кроме редактирования строки в строковой таблице вы можете также использовать текстовый редактор для редактирования строки в записи ресурса. Для редактирования записи ресурса в строковой таблице сде- лайте следующее: 1. Выделите строку записи ресурса в строковой таблице. 2. Выберите команду Resource¦Edit As Text (Ресурс¦Редактиро- вание в виде текста). Выводится текст записи ресурса, который вы можете редактиро- вать. Изменение строки ----------------------------------------------------------------- Для редактирования строки сделайте следующее: 1. Найдите строку, которую вы хотите редактировать, и внеси- те в нее необходимые изменения. Изменяйте только текст, который заключен в двойные кавычки. 2. Дважды щелкните кнопкой "мыши" в управляющем меню редак- тора. 3. В ответ на подсказку "Resource has changed. Compile?" ("Ресурс изменен, компилировать?") ответьте Yes (Да). Пакет разработчика ресурсов компилирует внесенные вами изме- нения и сохраняет их. При наличии синтаксической ошибки Пакет разработчика ресурсов переводит вам обратно в текстовый редактор, где вы можете исправить ошибку. ----------------------------------------------------------------- Изменение другого компонента записи строки, идентификатора, может оказаться более сложным, так как идентификатор может не су- ществовать или может потребоваться его изменение для задания нов- ого целочисленного значения.Если вы измените в строковом редакто- ре идентификатор, то вам выводится подсказка для ввода нового значения. Однако, если вы изменяете его в текстовом редакторе, вы должны уже добавить идентификатор в соответствующий файл иденти- фикаторов. Если вы этого не сделаете, компилятор пытается компи- лировать строковую таблицу и возвращает следующую ошибку "Expecting unsigned short integer" ("Требуется беззнаковое корот- кое целое значение"). Данная ошибка указывает, что компилятор пы- тается интерпретировать имя идентификатора, но не может найти для него идентификатор. Конечно, вы всегда можете включить в поле ID Source ID фак- тическое значение идентификатора, но это делает вашу строковую таблицу и программу менее удобной для чтения и гибкой. Если компилятор не может найти идентификатор, поскольку идентификатор не существует, вы можете добавить новый идентифика- тор: 1. Сделайте активным окно проекта. 2. Выберите команду Resource¦Identifiers (Ресурс¦Идентифика- торы). 3. Выберите командную кнопку New (Новый). 4. В диалоговом окне New Identifier (Новый идентификатор) введите имя нового идентификатора и его значение. 5. Если необходимо, прокрутите список File (Файл), пока не найдете файл, в котором вы хотите сохранить идентифика- тор, выделите его и выберите командную кнопку OK. 6. Выделите запись Stringtable в окне проекта и снова выбе- рите команду Resource¦Edit As Text (Ресурс¦Редактирование в виде текста). 7. Снова дважды щелкните кнопкой "мыши" в управляющем меню, затем для перекомпиляции выберите командную кнопку OK. Теперь компилятор находит идентификатор и успешно выпол- няет компиляцию. Как можно видеть, строковый редактор для изменения или до- бавления идентификаторов к строкам использовать действительно су- щественно легче. Сохранение таблицы строк ----------------------------------------------------------------- Неплохо сохранять изменения во время работы, не дожидаясь, пока Пакет разработчика ресурсов не выведет вам подсказку при закрытии проекта. Пакет разработчика ресурсов помещает запись STRINGTABLE в запись ресурса а окне проекта при создании нового ресурса автоматически. Чтобы сохранить таблицу строк, вам нужно сохранить весь проект. Проверка таблицы строк ----------------------------------------------------------------- Чтобы проверить строковую таблицу, нужно скомпилировать файл записей ресурсов в выполняемый файл. Затем вы можете запустить выполняемый файл и посмотреть, правильно ли выводятся строки. Примечание: О компиляции ресурсов в выполняемый файл подробно рассказывается в Главе 3. Создание примера таблицы строк ----------------------------------------------------------------- В следующем примере создается несколько строк, которые пакет разработчика ресурсов использует для описания параметров меню. Он показывает, как легко работать со строковыми ресурсами с помощью редактора строк Пакета разработчика ресурсов. Без пакета разработчика ресурсов вам пришлось бы использо- вать для создания этих строк следующие записи ресурсов: STRINGTABLE BEGIN MENU_FILE, "Create, open or close files" MI_FILENEW, "Create a new project, of file" MI_FILEOPEN, "Open a resource file" MI_FILESAVE, "Save this resource file" END Предшествующие каждой строке алфавитно-цифровые строки в верхнем регистре представляет собой уникальный идентификатор стро- ки. Как и в случае других ресурсов Windows, каждая строка требует целочисленного идентификатора. Без Пакета разработчика ресурсов вам пришлось бы отдельно определять соответствующие целочисленные идентификаторы для всех таких идентификаторов в файле заголовка (для программы на Си) или во включаемом файле или модуле (для программы Паскаля). С помощью Пакета разработчика ресурсов вы можете создавать примеры строк следующим образом: 1. Убедитесь, что вы уже открыли проект. Если вы уже работа- ли с примерами, используя MYPROJ.RC, то можете открыть данный проект. 2. Если у вас еще нет файла идентификаторов (файл заголовка с определениями #define языка Си или модуль либо включае- мый файл с константами Паскаля), который задан для проек- та, задайте такой файл и назовите его (в данном примере мы подразумеваем, что это программа на Си). 3. Выберите команду Resource¦New (Ресурс¦Новый) и укажите Пакету разработчика ресурсов, что нужно создать новую таблицу. Вы увидите строковый редактор. 4. Отступите от числа в текстовом блоке под ID Source и на- берите идентификатор строки. Для первой строки это MENU_FILE. 5. Для перемещения на String нажмите клавишу Tab. Обратите внимание, что вы пропустили ID Value. В это поле мы вер- немся позднее. 6. В поле String наберите текст строки. Для первой строки это текст Create, open, or close files. 7. Для определения следующей строки выберите команду Stringtable¦New Stringtable Item (Строковая таблица¦Новый элемент строковой таблицы) Перед тем как строковый редактор позволит вам перейти к следующей строке, он проверяет целочисленный идентифика- тор строки, который вы только что добавили. Во-первых, он проверяет то, что вы набрали в строке ID Source. Если вы ввели целое число, строковый редактор помещает то же це- лое число в столбце ID Value. Примечание: Подробнее об использовании идентификаторов и файлов идентификаторов рассказывается в начале данного руководства. Как только вы введете алфавитно-цифровой идентификатор (MENU_FILE в данном случае), строковый редактор проверяет определения #define в Си или константы в Паскале, которые указывают на целочисленный идентификатор. Если идентифи- катора нет, вам выводится запрос, хотите ли вы создать новый идентификатор. 8. Чтобы вывести диалоговое окно New Identifier (Новый иден- тификатор), выберите Yes (Да). ----T-----------------------------------------------------------¬ ¦ - ¦ New identifier ¦ +---+-----------------------------------------------------------+ ¦ ------------------------------------------------------------¬¦ ¦ ¦ ----------------------------------------------¬¦¦ ¦ ¦ Name ¦ MENU_FILE ¦¦¦ ¦ ¦ L----------------------------------------------¦¦ ¦ L------------------------------------------------------------¦ ¦ ------------------------------------------------------------¬¦ ¦ ¦ ----------------------------------------------¬¦¦ ¦ ¦ Value ¦ 768 ¦¦¦ ¦ ¦ L----------------------------------------------¦¦ ¦ L------------------------------------------------------------¦ ¦ ------------------------------------------------------------¬¦ ¦ ¦ --------------------------------------------T-¬¦¦ ¦ ¦ File ¦ ¦v¦¦¦ ¦ ¦ L-------------------------------------------+=-¦¦ ¦ L------------------------------------------------------------¦ +---------------------------------------------------------------+ ¦ ------------¬ ------------¬ ------------¬ ¦ ¦ ¦ _ ¦- ¦ ¦- ¦ ¦- ¦ ¦ ¦ V OK ¦- ¦ X Cancel ¦- ¦ ? Help ¦- ¦ ¦ L------------- L------------- L------------- ¦ ¦ ------------ ------------ ------------ ¦ ¦ ¦ L---------------------------------------------------------------- Рис. 7.3 Диалоговое окно New Inentifier 9. В текстовом поле Value (Значение) введите уникальный це- лочисленный идентификатор. В качестве первого идентифика- тора наберите 768. 10. Прокрутите вниз список File (Файл), пока вы не найдете MYPROJ.H, затем выберите его. 11. Чтобы ввести новый идентификатор и поместить его в файл MYPROJ.H, выберите командную кнопку OK. Повторите шаги 4 - 11, чтобы определить три другие строки, показанные в начале данного раздела: MI_FILENEW, MI_FILEOPEN и MI _FILESAVE. Попробуйте изменить последовательность, нажимая после ввода каждого имени идентификатора вместо Tab Enter. Как вы можете заметить, для каждой строки строковый редактор увеличивает числовое значение идентификатора на 1 (по сравнению с предыдущим идентификатором). Вам не требуется выбирать значение целочисленного идентификатора, для удобства строковый редактор помещает его сам. Когда вы закончите создание четырех строк, ваша строковая таблица будет выглядеть следующим образом: ----T---------------------------------------------------T---T---¬ ¦ - ¦ STRINGTABLE : MENU_FILE ¦ v ¦ ^ ¦ +---+-------------T----------T--------------------------+---+-T-+ ¦ ID Source ¦ ID Value ¦ String ¦^¦ +-----------------+----------+--------------------------------+-+ ¦ MENU_FILE ¦ 768 ¦ Create, open, or close files ¦-¦ +-----------------+----------+--------------------------------+-¦ ¦ MI_FILENEW ¦ 769 ¦ Create a new project resource o¦-¦ +-----------------+----------+--------------------------------+-¦ ¦ MI_FILEOPEN ¦ 770 ¦ Open a resource file ¦-¦ +-----------------+----------+================================+-+ ¦ MI_FILESAVE ¦ 771 ¦ Save this resource file ¦v¦ +-T---------------+----------+==============================T-+-+ ¦>¦---------------------------------------------------------¦<¦ ¦ L-+---------------------------------------------------------+-+-- Рис. 7.4 Строковый редактор с четырьмя определенными строка- ми В качестве последнего шага вы можете закрыть данную строко- вую таблицу, дважды щелкнув кнопкой "мыши" на управляющем блоке окна строкового редактора. Строковый редактор присваивает новой таблице имя первого идентификатора в таблице. Если первая запись ID Source представляет собой число, то это число станет именем строковой таблицы. Имя таблицы можно изменить только изменяя пер- вую запись ID Source в таблице. Это соглашение по наименованию имеет смысл, если вы вспомни- те, что строки загружаются сегментами по 16 строк, а целочислен- ный идентификатор строки указывает, где строка включается в сег- мент. Целочисленный идентификатор первой строки таблицы указывает, где в сегменте начинается таблица.