Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.12.30;
Скачать: CL | DM;

Вниз

str(255) в строку нужно различать содержание её внутренних тегов.   Найти похожие ветки 

 
Officeman   (2003-12-16 11:07) [0]

Доброе время суток, уважаемые мною друзья!
Существует некоторая строка str(255)
Нужно различать содержание её внутренних тегов. пример:
str:="[sys]www=1;admin=1[/sys] [pic]путь к картинке[/pic] [txt]некоторая строка[/txt]";
// Различаем и получаем: "Button1OnClick"
substr1:="www=1;admin=1";
substr2:="путь к картинке";
substr3:="некоторая строка";

Примерно также работает html (ГиперТекст)
Как наиболее корректно это сделать?
Прошу помочь с листнгом кода.


 
Ega23 ©   (2003-12-16 11:12) [1]

А str у тебя константа, или меняться будет? Это я к тому, что если будет меняться, то в 255 может и не влезть...


 
bushmen ©   (2003-12-16 11:12) [2]

Наверное, что-нить подобное:

i := InStr(str, "]");
str1 := copy(str, i+1, length(str)-i);
i := InStr(str, "[");
substr1 := copy(str1, 1, i-1);

и т.д...


 
Officeman   (2003-12-16 15:19) [3]

? зятрудняюсь! пожалуйста опишите поподробнее.

да строка имеет разные размеры(длину), когда сказал 255, я имел виду что будут символы и цифры и др.спец.знаки.

я незнаю как это реализовать. мжет у кого была похожая задача?
пишите. может исходник есть? zeram@hotmail.ru

с Уважением, ОфисМен


 
Ega23 ©   (2003-12-16 15:33) [4]

Тэги идут подряд, или могут быть вложенными?
Т.е. на примере скобок

(abc){def}[ghi] или может быть ({abc} [def])


 
Polevi ©   (2003-12-16 16:02) [5]

напоминает xml
меняем
[ на <
] на >
далее любым xml парсером
только рутовый тег нужно добавить


 
Officeman   (2003-12-17 00:25) [6]

toEga23
Да как удобно. влоджение необязательно. как проще. просто нужно параметры передавать. с тегами удобнее тем, что можно писать их в разной последовательности.

to Polevi
ээээ... =)

с Уважением, надеюсь и верю, ОфисМен


 
Palladin ©   (2003-12-17 00:31) [7]

напоминает ini
убираем элементы [/]
добавляем имена к неименованным параметрам
делаем перенос строк где надо
далее любым объектом TIniFile
только в файл сохранить надо
:))


 
Slym ©   (2003-12-17 07:39) [8]


function GetValue(Tag,Source:String):string;
var
bs,es:string;
b,e:integer;
begin
result:="";
bs:="["+Tag+"]";
es:="[/"+Tag+"]"
while Length(Source)>0 do
begin
b:=Pos(bs,Source);
if b=0 then break;
e:=Pos(es,Source);
if e=0 then break;
if b>e then break;
result:=result+copy(Source,b+Length(es),e-b-Length(es));
Delete(Source,1,e);
end;
end;

Usage

const s="[sys]www=1;admin=1[/sys] [pic]путь к картинке[/pic] [txt]некоторая строка[/txt] [sys]www2=2;admin2=1[/sys]";
var r:string;
begin
r:=GetValue("sys",s);

r="www=1;admin=1www2=2;admin2=1"

Код не проверял


 
Slym ©   (2003-12-17 07:45) [9]

И где гарантия что в [txt]некоторая строка[/txt] не будет такая
[txt]"некоторая [/txt] строка"[/txt]


 
Officeman   (2003-12-17 08:25) [10]

Благодарствую, только код проверить нужно на корректность.

to Slym
всё будет по правилам. тег открылся - тег закрылся.
надеюсь твой код работает.


 
Officeman   (2003-12-17 08:30) [11]

Проект. Интренет Магазин - пишу на дельфи. в зависимости от настроек - профиля пользователя буду передавать различные параметры одной строкой. поэтому хотел использовать теги, котому как парамерт может передаваться один, а может 50 штук. с тегами в этом случае удобно работать - дают гибкость сожержания параметров. ini - меня неустраивает.

с Уважением, ОфисМен



Страницы: 1 вся ветка

Текущий архив: 2003.12.30;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.016 c
3-99468
MalkoLinge
2003-12-05 10:40
2003.12.30
Определить все Constraints схемы


1-99527
Dikoy
2003-12-16 14:24
2003.12.30
Автоматическое создание файла history.txt


3-99472
AndDem
2003-12-01 17:34
2003.12.30
Компонент EventAlert для ADO-соединения с MSSQL


3-99459
badis
2003-12-03 07:53
2003.12.30
Как сделать так, чтобы БД работала без BDE Administrator


1-99629
изм
2003-12-16 15:09
2003.12.30
иконки