powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Задача со строками для сообразительных :)
6 сообщений из 6, страница 1 из 1
Задача со строками для сообразительных :)
    #38369510
REBBUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток, нужна помощь со строками
Имеются текстовые поля из БД хранящие названия картинок вида

[{"index":1,"image":"fotographia_53_1.jpg","thumbnail":"fotographia_53_1_t.jpg"},{"index":2,"image":"foto_53_2.jpg","thumbnail":"foto_53_2_t.jpg"},
{"index":3,"image":"kartinka_53_3.jpg","thumbnail":"kartinka_53_3_t.jpg"},{"index":4,"image":"kartinka_53_4.jpg","thumbnail":"kartinka_53_4_t.jpg"},{"index":5,"image":"kartinka_53_5.jpg","thumbnail":"kartinka_53_5_t.jpg"},{"index":6,"image":"fotka_53_6.jpg","thumbnail":"fotka_53_6_t.jpg"}]

или

[{"index":1,"image":"zagolovok_2_1.jpg","thumbnail":"zagolovok_2_1_t.jpg"},
{"index":2,"image":"izo_23_2.jpg","thumbnail":"izo_23_2_t.jpg"},
{"index":3,"image":"foto_23_3.jpg","thumbnail":"foto_23_3_t.jpg"}]

и т.д с разным количеством картинок, может одна строка [{"index":1,"image":"zagolovok_2_1.jpg","thumbnail":"zagolovok_2_1_t.jpg"}
а может и несколько до 8 они все идут друг за другом без пробелов и переносок на новую строчку, это я просто что бы понятнее было разбил по строчкам (это адсменеджер джумла так хранит названия фоток и их миниатюрок)
Мне нужно получить названия картинок для каждой строки , как можно вырезать их средствами FoxPro ? количество картинок в каждой строки посчитать легко функцией OCCURS("image","Текст строки") а вот названия фоток не могу вырезать ? вот на PHP могу легко это сделать, но в Фоксе я не очень , кто нибудь может помочь ?
...
Рейтинг: 0 / 0
Задача со строками для сообразительных :)
    #38369513
REBBUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
хотя бы подскажите как такие строки
[{"index":1,"image":"zagolovok_2_1.jpg","thumbnail":"zagolovok_2_1_t.jpg"},{"index":2,"image":"prodayu-kvartiru_23_2.jpg","thumbnail":"prodayu-kvartiru_23_2_t.jpg"},{"index":3,"image":"prodayu-kvartiru_23_3.jpg","thumbnail":"prodayu-kvartiru_23_3_t.jpg"}]

разбить на строки вида

{"index":1,"image":"zagolovok_2_1.jpg","thumbnail":"zagolovok_2_1_t.jpg"}

{"index":2,"image":"prodayu-kvartiru_23_2.jpg","thumbnail":"prodayu-kvartiru_23_2_t.jpg"}

{"index":3,"image":"prodayu-kvartiru_23_3.jpg","thumbnail":"prodayu-kvartiru_23_3_t.jpg"}


что бы записать их в разные переменные и там уже лишнее как нибудь по отрезаю. Или нет ли такой функции в Фоксе который возвращает строку между заданными подстроками например между между "image":" и ","thumbnail" и тога бы вся проблема отпала :)
...
Рейтинг: 0 / 0
Задача со строками для сообразительных :)
    #38369611
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Читай справку по функциям

ALINES()
GetWordNum()
GetWordCount()

В функции Alines() можно задать несколько сепараторов

Для примера

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
lcString = [{текст,1},{текст,2},{текст,3}]

Local laLines(1), lnCount, lnI
lnCount=ALines(laLines, lcString, 1+4, "}", "{")

* Смотрим, что получилось
for lnI = 1 to lnCount
    ?laLines[m.lnI]
endfor



Другой вариант

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
lcString = [{текст,1},{текст,2},{текст,3}]

* Делаем предварительное преобразование исходной строки
lcString = StrTran(lcString, "},{", "}"+chr(13)+"{")

Local laLines(1), lnCount, lnI
lnCount=ALines(laLines, lcString, 1+4)

* Смотрим, что получилось
for lnI = 1 to lnCount
    ?laLines[m.lnI]
endfor
...
Рейтинг: 0 / 0
Задача со строками для сообразительных :)
    #38369680
REBBUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМ,

Спасибо большое, будем читать и пробовать
...
Рейтинг: 0 / 0
Задача со строками для сообразительных :)
    #38369786
REBBUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
С этим разобрался, спасибо еще раз всем, а еще такой вопрос , мне нужно присвоить эти значения для

thisformset.form1.pageframe1.page1.image1.Picture=...
thisformset.form1.pageframe1.page2.image2.Picture=...
thisformset.form1.pageframe1.page3.image3.Picture=... и т.д.

это можно в цикле делать ? что бы вместо page1 писать page[i] если так вариант, то как синтаксический это будет выглядеть ? перепробовал разные варианты, но Фокс ругается ((
...
Рейтинг: 0 / 0
Задача со строками для сообразительных :)
    #38369842
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У объектов контейнеров (PageFrame, Grid, CommandGroup, OptionGroup) в есть две коллекции вложенных объектов. Во-первых, это коллекция Objects(), которая есть у всех объектов-контейнеров. А, во-вторых, это специфическая коллекция, имя которой особое для каждого объекта-контейнера. Для PageFarme это коллекция Pages (Page - во множественном числе. С буквой "s" на конце)

В этом случае, перебор страниц страничного блока будет выглядеть примерно так

Код: sql
1.
2.
3.
for lnI = 1 to thisformset.form1.pageframe1.PageCount
    thisformset.form1.pageframe1.Pages(m.lnI).Image1.Picture = ...
endfor



Также можно использовать специальный цикл FOR EACH

Код: sql
1.
2.
3.
4.
Local loPage
FOR EACH loPage IN thisformset.form1.pageframe1
    loPage.Image1.Picture = ...
ENDFOR



Правда, недостатком второго способа можно считать то, что придется как-то дополнительно идентифицировать ту страницу, ссылка на которую попала в переменную loPage. Можно использовать свойства PageOrder или анализ Name. Но тут следует иметь в виду, что, в общем случае, индекс объекта Page в коллекции Pages() не имеет ничего общего со значениями этих свойств. Если они одинаковые, то это совпадение и ничего больше. Хотя, конечно, можно исходить именно из того, что такое совпадение имеет место быть.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Задача со строками для сообразительных :)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]