![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Текстовый квест - нужна помощь. [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);
это только текст вытащил, вроде так, но надо проверить