Типы данных в языке C++__________________________________687

Не забудьте, только, что если требуемый файл расположен не в текущем ката-
логе и вам надо указать путь к файлу, то обратные слеши в записи пути должны
быть сдвоенные (см. раздел 11.3.1 главы 11, посвященный текстовым констан-
там). Например, если вам требуется файл «c:\MyTest\Test.txt», то вы должны за-
писать его как «c:\\MyTest\\Test.txt».

В момент, когда вы хотите загрузить в свой список файл, надо выполнить опе-
ратор

List->LoadFromFile(SFile) ;

Впрочем, ограничиться таким оператором можно, если есть уверенность, что
требуемый файл существует. В противном случае код надо несколько усложнить,
чтобы можно было перехватить сгенерированное исключение. Например:

try(

List->LoadFromFile(SFile) ;

)
catch(...){

ShowMessage("Файл \"" + SFile +"\" не найден");

}

Если файл нормально загрузился в список List, вы можете работать с его тек-
стом. Текст расположен в свойстве списка Strings[int Index], в котором каждая
строка имеет тип AnsiString. Индексы начинаются с нуля. Для нашего примера
List->Strings[0] — это первая строка, List->Strings[l] — вторая и т.д.

Для списков типа TStringList предусмотрено множество методов, которые вы
можете посмотреть в соответствующем разделе главы 15. При обработке отдель-
ных строк вы можете использовать операции и методы, предусмотренные для
строк типа AnsiString (см. раздел 12.4.2 и соответствующий раздел главы 15).

Если вы хотите сохранить файл после проведенного редактирования, можно
выполнить оператор

List->SaveToFile(SFile);

где SFile содержит прежнее или новое имя файла.

Если при открытии и сохранении файла вы хотите воспользоваться стандарт-
ными диалогами Windows, вы можете посмотреть раздел 4.7.6 главы 4 и раз-
дел 3.6.2 главы 3, в которых подробно расписаны необходимые для этого действия.

Если вы открываете файл для того, чтобы пользователь мог его просмотреть,
что-то в нем отредактировать и сохранить, вы можете обойтись без описанного
выше объекта типа TStringList. Для этих целей проще воспользоваться много-
строчными окнами редактирования типов TMemo или TRichEdit. В последнем
случае вы можете работать не только с обычными текстовыми файлами, но и с
файлами в обогащенном формате RTF. Свойства Lines этих компонентов имеют
тип TStrings, что позволяет применять к ним непосредственно методы LoadFrom-
File и SaveToFile. Например:

Memol->Lines->LoadFromFile(SFile) ;

RichEditl->Lines->LoadFromFile(SFile) ;

Работа с компонентами Memo и RichEdit подробно рассмотрена в главе 3 в раз-
деле 3.2.4.

Через компоненты C+4-Builder можно работать не только с текстовыми файла-
ми, но и с файлами изображений и мультимедиа. Этим вопросам посвящена гла-
ва 5.