|
15.12.2008, 00:01
|
#1
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Lib_parse - Разбиение строки
Вот, накалякал небольшую библиотечку для облегчения такой задачи как разбиение строк. Список функций пока такой:
get(i: integer) - Получить строку под номером i из массива
put(s: string; i: integer) - Записать строку s в массив в элемент с индексом i
len - Возвращает длину массива
clear - Очистить массив
line(s: string; p: string) - Разбить строку, разделяемую символом p К примеру, у вас есть строка "С:/windows/system32", тогда функция parse.line("С:/windows/system32", "/") разобьет строку и получится следующий массив: C: windows system32 html(s: string) - Разбивает html страницу. К примеру, у вас есть примерно такая html страница: <html> <head> <title>This is my site</title> </head> <body> <b>First page</b> </body> </html> После разбиения получим массив из двух элементов: This is my site First page
Короче, всё просто. Функции line и html разбивают строку и помещают обрезки в массив, а с помощью put и get можно оперировать с полученным массивом.
Вот пример программки:
Program ParseTest; Uses parse; Begin parse.html('<html><head><title>This is my site</title></head><body><b>First page</b></body></html>'); DrawText('Строк получено: ' + parse.len, 0, 0); DrawText(parse.get(0), 0, 20); DrawText(parse.get(1), 0, 40); Repaint; Delay(5000); End.
Последний раз редактировалось odd, 15.12.2008 в 00:08.
|
(Offline)
|
|
Эти 13 пользователя(ей) сказали Спасибо odd за это полезное сообщение:
|
Bruteo (25.12.2009), DIMMON4IK (25.12.2009), Ghost_Russia (19.12.2008), GRAY_WOLF (16.12.2008), kirleer (15.09.2010), m1kc. (21.12.2008), PacMan (14.06.2011), RblSb (15.11.2013), Rock2roll (22.05.2011), Rumata (22.11.2009), scimitar (17.12.2008), Skythrone (15.12.2008), VM (09.01.2009)
|
24.12.2008, 15:21
|
#2
|
Оператор ЭВМ
Регистрация: 04.09.2008
Сообщений: 39
Написано 4 полезных сообщений (для 5 пользователей)
|
Lib_parse - Разбиение строки
odd, полезная вещь! А можешь сделать так, чтобы тэг <style> удалялся вместе со всем содержимым?
|
(Offline)
|
|
25.12.2008, 21:31
|
#3
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Ответ: Lib_parse - Разбиение строки
Сообщение от m1kc.
odd, полезная вещь! А можешь сделать так, чтобы тэг <style> удалялся вместе со всем содержимым?
|
Я щас работаю над XML реализацией. Как закончу - выложу.
|
(Offline)
|
|
29.12.2008, 09:04
|
#4
|
Нуждающийся
Регистрация: 04.10.2007
Сообщений: 64
Написано одно полезное сообщение
|
Ответ: Lib_parse - Разбиение строки
Хочу найти все ссылки тэга img
|
(Offline)
|
|
22.02.2009, 11:00
|
#5
|
Нуждающийся
Регистрация: 04.10.2007
Сообщений: 64
Написано одно полезное сообщение
|
Ответ: Lib_parse - Разбиение строки
чесное слово.. ну не работает код, в чем я не прав, голову сломал ужо:
for i:=1 to parse.len do // запомним все
begin
ss[i]:=parse.get(i);
l:=formAddString(ss[i]);// на форму выводятся все данные как надо
end;
l:=formAddString(ss[1]); // НЕ ПОКАЗЫВАЕТ НИЧЕГО, проверяю в MidpX самом последнем
|
(Offline)
|
|
23.02.2009, 16:18
|
#6
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Ответ: Lib_parse - Разбиение строки
Ты смотри, в библиотеке отсчёт идёт с нуля, а в твоём массиве с 1.
Может в этом проблема? Ты же не делаешь parse.get(0). Один элемент теряется.
|
(Offline)
|
|
19.11.2009, 19:48
|
#7
|
Знающий
Регистрация: 21.07.2009
Адрес: Украина
Сообщений: 219
Написано 44 полезных сообщений (для 78 пользователей)
|
Ответ: Lib_parse - Разбиение строки
ПОМОГИТЕ
repeat a:=formAddString(parse.get(i)); i:=i+1; until i>parse.len;
Всё нормально, а:
repeat drawtext(parse.get(i),0,15*i); i:=i+1; repaint; until i>parse.len;
На эмуле не работает ( просто drawtext(parse.get(i),0,0); без циклов работает, но мне нужно всё вывести)
|
(Offline)
|
|
19.11.2009, 21:28
|
#8
|
Оператор ЭВМ
Регистрация: 24.09.2007
Сообщений: 36
Написано 2 полезных сообщений (для 3 пользователей)
|
Re: Lib_parse - Разбиение строки
repeat s := parse.get(i); y := 0,15*i; drawtext(s, 0, y); i := i + 1; repaint; until i> parse.len;
|
(Offline)
|
|
19.11.2009, 22:10
|
#9
|
Разработчик
Регистрация: 16.08.2008
Адрес: Нижегородская провинция
Сообщений: 389
Написано 48 полезных сообщений (для 93 пользователей)
|
Ответ: Re: Lib_parse - Разбиение строки
Сообщение от VM
repeat s := parse.get(i); y := 0,15*i; drawtext(s, 0, y); i := i + 1; repaint; until i> parse.len;
|
при y := 0,15*i; будет сильное наложение текста, может так y := 15*i;
__________________
- Это мы накодили WINDOWS,
- Это мы надкусили APPLE,
- Нам играют живые The Beatles
- И нестареющий Вова Высоцкий...
|
(Offline)
|
|
19.11.2009, 23:02
|
#10
|
Знающий
Регистрация: 21.07.2009
Адрес: Украина
Сообщений: 219
Написано 44 полезных сообщений (для 78 пользователей)
|
Ответ: Lib_parse - Разбиение строки
Не раб
|
(Offline)
|
|
20.11.2009, 09:24
|
#11
|
Оператор ЭВМ
Регистрация: 24.09.2007
Сообщений: 36
Написано 2 полезных сообщений (для 3 пользователей)
|
Re: Lib_parse - Разбиение строки
Может после repaint; delay(100)?
|
(Offline)
|
|
22.11.2009, 12:56
|
#12
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Ответ: Lib_parse - Разбиение строки
Переменную "y" нужно приводить к integer.
|
(Offline)
|
|
22.11.2009, 13:14
|
#13
|
Знающий
Регистрация: 21.07.2009
Адрес: Украина
Сообщений: 219
Написано 44 полезных сообщений (для 78 пользователей)
|
Ответ: Lib_parse - Разбиение строки
У меня она integer. И не работает
|
(Offline)
|
|
22.11.2009, 13:18
|
#14
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Ответ: Lib_parse - Разбиение строки
Если это KEmulator, то проблема в нем.
На самом деле всё на экран выводится, просто эмулятор глючит.
Обычно для нормального отображения помогает перезапуск приложения (Alt+R).
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
22.11.2009, 18:37
|
#15
|
Знающий
Регистрация: 21.07.2009
Адрес: Украина
Сообщений: 219
Написано 44 полезных сообщений (для 78 пользователей)
|
Ответ: Lib_parse - Разбиение строки
KEmulator
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 05:55.
|