Иллюстрированный самоучитель по Tirbo Pascal


         

В программе UseStringRes текст, полученный


ProgText.Init(New(PBufStream,

InitC prog, res' , stCreate, 1024) )) ;

Strings.Init(SizeStrRes,Nstr);

k := 0;

while not EOF(f) do 

begin

ReadLn(f,s); {Читаем строку программы} 

inc(k) ; {k - порядковый номер строки}

Strings.Put(k,s) {Помещаем строку в ресурс} 

end;

Close (f); {Закрываем файл с текстом программы}

{Помещаем ресурс в поток}

ProgText.Put(@Strings,'Программа');

Strings.Done; {Закрываем ресурс}

ProgText. Done {Закрываем поток} 

end.

В программе UseStringRes текст, полученный из созданного строкового ресурса, читается и выводится на экран «задом наперед», начиная с последней строки текста.

Program UseStingRes;

{Эта программа использует ранее созданный строковый ресурс} 

Uses Objects; 

var

ProgText: TResourceFile; {Файл ресурсов}

PStrings : PStringList; {Строковый ресурс}

k,N: Integer;

begin

RegisterType(RStringList); {Регистрируем объект}

ProgText.Init(New(PBufStream, {Создаем поток}

Init('prog.res',stOpenRead,1024)));

PStrings := {Получаем из потока ресурс}

PStringList(ProgText.Get('Программа'));

N := 1;

while (PStrings.Get(N))<>'' do

inc(N); {N-1 = общее количество строк} 

for k := N-l downto 1 do

WriteLn(PStrings.Get(k)); {Получаем и выводим строки} 

PStringsA.Done; {Закрываем ресурс} 

ProgText.Done {Закрываем поток} 

end.

Заметим, что индексы, по которым осуществляется доступ к строковому ресурсу, могут быть произвольными целыми числами в диапазоне от 0 до 65535. Чтобы определить общее количество строк в строковом ресурсе, используется то обстоятельство, что при обращении к TStringList.Get с недействительным индексом метод выдает пустую строку. На практике этот способ нельзя считать надежным (в строковом ресурсе могут храниться и пустые строки), однако других способов определения этого параметра в TStringList не существует.

Перед обращением к TSrtListMaker.Put и TSrtmgList.Get соответствующие объекты должны быть зарегистрированы с помощью RegisterType.


Содержание  Назад  Вперед





Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий