Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Текстовый квест - нужна помощь. [D6, XP]


747 ©   (2005-10-05 21:22:00) 

Нужна помощь Я пишу текстовый квест и столкнулся со следующей проблемой. Текст не помещается в отведенное ему место. То есть - у меня есть объект Statictext  определенного размера, но если текст превысит этот размер - то его не будет видно. Мне нужно написать следующий алгоритм. Текст в определенном файле например Data.dat имеет следующий вид: [c]qqqqqqqqqqqqqqqqqqqqqqq[/c]
[c]aaaaaaaaaaaaaaasdasdasaa[/с]

Так вот мне нужно вытащить из этого файла текст, который заключен в тег [c][/c], а затем, если он большой и не вписывается в размер разбить его на части. Части следующие выводить кнопочками далее и назад. А по окончании текста (вытащенного) перейти к следующему тегу.

Подскажите пожалуйста, как можно такой алгоритм реализовать.


Zeqfreed   (2005-10-05 23:15:00) [1]

747   (05.10.05 21:22)
http://zeqfreed.k66.ru/files/test_src.zip(9 кб, исходники)
http://zeqfreed.k66.ru/files/test_exe.zip(208 кб, исходники + исполняемый модуль)

Разбирайся. Алгоритм в лом расписывать было :)


747   (2005-10-05 23:00:00) [2]

Спасибо. Буду разбираться.


DroNIX   (2005-10-05 22:33:00) [3]

Да чё то я понапутал уж совсем всё забы :)
во bugfix:
procedure TForm1.Button1Click(Sender: TObject);
const
s='++++[c]123456678910 1234[/c]+++';
len=5; //мах количество символов
var
temp:string;
i,n,e,c,el:integer;
text: array of string;
begin
el:=0;
n:=pos('[c]',s);
e:=pos('[/c]',s);
c:=e-n-3;
temp:=copy(s,n+3,c);
el:=length(temp) div len;
SetLength(text,el+1);
for i:=0 to el do
text[i]:=copy(temp,i*len+1,len);
showmessage(inttostr(el)+'  '+temp);
end;


Ну а там легко.!


DroNIX   (2005-10-05 22:08:00) [4]

...
read(fn,s);
n:=pos(s,'[c]');
e:=pos(s,'[/c]');
count:=e-n;
text:=copy(s,n+3,count);
это только текст вытащил, вроде так, но надо проверить


Наверх

Титульная страница Поиск, карта сайта Написать письмо