Вверх ↑
Этот топик читают: Гость
Ответов: 446
Рейтинг: 7
#1: 2008-01-17 14:37:15 ЛС | профиль | цитата
Добрый день. Подскажите как мне хранить форматированный текст в одной ячейке таблицы строк? Мне необходимо хранить отформатированный блок текста с переводами каретки в одной ячейке таблицы строк. В таком виде как сейчас, после каждого перевода строки появляется новая ячейка. Как такое сделать? Если сперва создавать таблицу – все происходит правильно, Если в дальнейшем сохранить и загрузить эту таблицу – строки формируются по другому.
code_8166.txt
карма: 0
Время верстки: Текущее время: %time%
0
файлы: 1code_8166.txt [983B] [216]
Разработчик
Ответов: 26163
Рейтинг: 2127
#2: 2008-01-17 15:13:43 ЛС | профиль | цитата
В твоем варианте можно вот так, через встроенный StrList таблицы:


#sha
Add(MainForm,13195400,329,203)
{
Left=10
Top=10
Ctl3D=0
Position=1
}
Add(StringTableMT,8639906,588,238)
{
Left=10
Top=173
Width=205
Height=155
Columns=#38:Фразы для вставки в элементы формы=350|
IconsCheck=[]
MiscIcons=[]
Icons=[]
Point(Index)
Point(StrLst)
Point(TextStrLst)
Point(doAddStrLst)
Point(doTblStrLst)
link(StrLst,3162521:Text,[])
}
Add(SDialog,8596936,336,385)
{
link(onExecute,14690892:doEvent1,[])
}
Add(Hub,14690892,392,385)
{
OutCount=3
link(onEvent1,8639906:doSave,[(534,391)(534,272)])
}
Add(MenuEx,7704117,287,385)
{
Menu=#9:Сохранить|
Bitmaps=[]
link(MenuItemIdx,8596936:doExecute,[])
}
Add(Memo,3162521,595,168)
{
Left=10
Top=45
Width=200
ScrollBars=2
}
Add(Button,3655189,329,301)
{
Left=10
Top=130
Width=95
TabOrder=-1
Caption="Добавить"
link(onClick,5326395:doEvent1,[])
}
Add(Button,13026732,329,252)
{
Left=10
Top=345
Width=85
Color=-16777211
TabOrder=-1
Caption="загрузить"
link(onClick,11715978:doExecute,[])
}
Add(ODialog,11715978,392,252)
{
link(onExecute,8639906:doLoad,[(452,258)(452,265)])
}
Add(Hub,5326395,392,301)
{
link(onEvent1,8639906:doAddStrLst,[(506,307)(506,279)])
link(onEvent2,8639906:doTblStrLst,[(506,314)(506,286)])
}

карма: 22

0
Ответов: 446
Рейтинг: 7
#3: 2008-01-17 15:37:54 ЛС | профиль | цитата
Ну и не понял я ничего...
От этого ничего не изменилось. Пробовал и сохранять строковой накопитель в файл и загружать из файла - результат тот же. После загрузки из файла получаем опять другой вывод строк, а блоками загрузить не получается.
карма: 0
Время верстки: Текущее время: %time%
0
Ответов: 9906
Рейтинг: 351
#4: 2008-01-17 16:20:57 ЛС | профиль | цитата
Stasie писал(а):
Ну и не понял я ничего

А может наоборот
Если наоборот, наводящий вопрос: почему
карма: 9

0
Ответов: 446
Рейтинг: 7
#5: 2008-01-17 16:37:40 ЛС | профиль | цитата
Galkov писал(а):
наводящий вопрос: почему

Почему?

Возможно!, Я не понимаю сути строкового накопителя... Я не знаю зачем он нужен и как им пользоваться. Возможно!, я делаю что-то не правильно. На сколько я могу понять: Через таблицу строк такая задача не решается...

------------ Дoбавленo:

Но вот в ячейку таблицы Excel хоть черта лысого можно вставить... Я и подумал что здесь тоже так можно.
карма: 0
Время верстки: Текущее время: %time%
0
Ответов: 9906
Рейтинг: 351
#6: 2008-01-17 17:14:32 ЛС | профиль | цитата
Stasie писал(а):
Почему?

Ответ: потому-что ты не изложил свою проблемму в виде понятном не только тебе, но и коллеге.
Напоминаю основной постулат Теории Относительности Очевидности: очевидность -- относительна

1) Показываешь схему (это предположим, есть)
2) Говоришь чего надо сделать после запуска
3) Говоришь чего ожидаешь получить, и почему
4) Говоришь, чего получаешь на самом деле
5) Данные предоставляешь в таком виде, чтобы это "получаешь на самом деле" было не только у тебя на компе, но и у других

Делов-то
------------ Дoбавленo:

Поэтому мы Вам рекомендуем тщательно выполнить рекомендации по пп. 1-5...
Но можно этого и не делать...
Если Вас не интересует Результат ((c) Жванецкий)

карма: 9

0
Ответов: 446
Рейтинг: 7
#7: 2008-01-17 17:19:50 ЛС | профиль | цитата
Galkov писал(а):
Ответ: потому-что ты не изложил свою проблемму в виде понятном не только тебе, но и коллеге.

Ок. Попробуем еще раз.
Galkov писал(а):
1) Показываешь схему (это предположим, есть)

Схему смотрим в верху мою, далее изменения nesco
Galkov писал(а):
2) Говоришь чего надо сделать после запуска

Хочу в одной ячейке таблицы строк держать отформатированный блок текста, тоесть любой текст с переводом каретки. Если я правильно выражаюсь. Фактически нужно хранить в одной строке весь текст этого сообщения в том виде в каком он есть.
Galkov писал(а):
3) Говоришь чего ожидаешь получить, и почему

Хочу использовать собранные блоки в таблице для быстрой вставки к примеру на сайт в элемент textarea.
Как делал раньше: Подобный схему делал раньше, но только для определенных форм. Т.е. - я заменял все переводы каретки тегом "<br />" и потом успешно хранил данные в таблице. Вставлял в textarea и получал нужный мне результат. Сейчас я хочу использовать подобные блоки в разных местах, поэтому и хочу сохранить все эти переводы кареток...
Galkov писал(а):
4) Говоришь, чего получаешь на самом деле

Сейчас получаю то, что при создании таблицы все происходит правильно, в одной ячейке содержится строка с переводами каретки, выглядит одна строка где-то так "фывыфв||asd asda asd||sadasdasd asd||"
В итоге после вставки в другое приложение должно получиться:
фывыфв
asd asda asd
sadasdasd asd
А Вот если сохранить таблицу строк, что бы в будущем с ней работать, загрузив ее в программу получаем уже 3 строки вместо одной, вида:
фывыфв
asd asda asd
sadasdasd asd
и соответственно если я получаю одну строку, в другом приложение она будет выглядеть так:
фывыфв
Galkov писал(а):
5) Данные предоставляешь в таком виде, чтобы это "получаешь на самом деле" было не только у тебя на компе, но и у других

Ну, вот собственно в моем примере приведено две кнопочки: Сперва создаем файл кнопочкой "Добавить" (несколько разных сток с переводом каретки), Потом сохраняем это все, а потом загружаем снова в таблицу. Получиться то что и у меня. ВОт собственно.
карма: 0
Время верстки: Текущее время: %time%
0
Ответов: 9906
Рейтинг: 351
#8: 2008-01-17 21:02:10 ЛС | профиль | цитата
Stasie писал(а):
тоесть любой текст с переводом каретки. Если я правильно выражаюсь

Не надо искать правильные формы глаголов и прилагательных - всегда есть вероятность что другой человек их по-другому поймет
Хочешь верь, хочешь нет - но я на форуме встречал три разных понимания слова "каретка".
И каждый раз для меня это было неожиданностью.
Нарисуй пару "дополнительных кнопочек", которые делают именно то, чего ты хотел сказать
И вместо всего этого напиши: нажать кнопу "1", а потом - "2".
И разночтения исключены.

В принципе, вроде я же понимаю, чего ты хочешь сказать...
Но я не могу сказать, что Автор элемента обязан понимать любой словесный сленг.
А вот "нажать кнопу 1, а потом - 2" - обязан
У всех у нас свои тараканы в голове.
И даже, мы все и имеем право - именно на свои...


И что характерно, не исключен вариант, что он давно все понял, а это мы тупые, и не поняли его продвинутого элемента
Вот он придет, и все нам разъяснит

Кстати говоря, если бы ты свой первый пример сделал именно в стиле "нажать кнопу 1, а потом - 2", то он ТОЖЕ именно такой же и выложил бы в ответ.
И тогда и мы бы достигли высшей степени просветления
Секёшь масть
карма: 9

0
Ответов: 446
Рейтинг: 7
#9: 2008-01-17 21:40:59 ЛС | профиль | цитата
Galkov писал(а):
Секёшь масть

Не, не секу... правда... я уже не знаю что сказать
В принципе то, это вопрос то не по компаненту, я думаю с компонентом все в порядке.
И более того, ту задачу которую мне нужно решить - можно решить обходным путем, через Array,
но я думал что возможно сделать все гораздо проще можно все реализовать вот поэтому и спросил.
Galkov писал(а):
Хочешь верь, хочешь нет - но я на форуме встречал три разных понимания слова "каретка".

А каким ты пониманием пользуешься
Если не могу сказать - тогда покажу - смотрите тут: http://www.repka.tv/video/923/
карма: 0
Время верстки: Текущее время: %time%
0
Разработчик
Ответов: 26163
Рейтинг: 2127
#10: 2008-01-17 21:48:12 ЛС | профиль | цитата
Эх, не было бы этих стенаний на тему..., но, увы, у нас в регионе севера упали, уже какой раз в неделю
Galkov писал(а):
И что характерно, не исключен вариант, что он давно все понял, а это мы тупые, и не поняли его продвинутого элемента
Ну я это не говорил, зачем ты так? Все это можно сделать и на обычных компонентах, но не в этом дело.

Я понял, что надо, сразу после первого ответа. Все не так сложно, надо головой было только подумать.

Вот один из вариантов решения, как раз и применяется метод замены на "левые" символы



#sha
Add(MainForm,13195400,322,287)
{
Left=10
Top=10
Width=413
Height=438
Ctl3D=0
Position=1
}
Add(StringTableMT,8639906,588,238)
{
Left=10
Top=173
Width=205
Height=155
Columns=#38:Фразы для вставки в элементы формы=350|
Flat=1
IconsCheck=[]
MiscIcons=[]
Icons=[]
Point(Index)
Point(StrLst)
Point(doAddStrLst)
Point(doTblStrLst)
Point(doClearStrLst)
Point(doLoadStrLst)
Point(doSaveStrLst)
Point(Matrix)
Point(StrLstArray)
}
Add(SDialog,8596936,413,287)
{
link(onExecute,14690892:doEvent1,[])
}
Add(Hub,14690892,469,287)
{
OutCount=3
link(onEvent1,8639906:doClearStrLst,[])
link(onEvent2,8328167:doFor,[(541,300)(541,398)])
link(onEvent3,8639906:doSaveStrLst,[])
}
Add(MenuEx,7704117,364,287)
{
Menu=#9:Сохранить|
Bitmaps=[]
link(MenuItemIdx,8596936:doExecute,[])
}
Add(Memo,3162521,413,175)
{
Left=10
Top=45
Width=200
ScrollBars=2
}
Add(Button,3655189,357,238)
{
Left=10
Top=130
Width=95
TabOrder=-1
Caption="Добавить"
link(onClick,555283:doData,[])
}
Add(Button,13026732,364,420)
{
Left=10
Top=345
Width=85
Color=-16777211
TabOrder=-1
Caption="загрузить"
link(onClick,11715978:doExecute,[])
}
Add(ODialog,11715978,413,420)
{
link(onExecute,6156660:doEvent1,[])
}
Add(Hub,6156660,462,420)
{
OutCount=3
link(onEvent1,8639906:doClear,[(547,426)(547,251)])
link(onEvent2,8639906:doLoadStrLst,[(557,433)(557,300)])
link(onEvent3,6727792:doEnum,[])
}
Add(For,8328167,581,392)
{
IncludeEnd=1
link(onEvent,5675893:doRead,[])
link(End,8639906:Count,[])
}
Add(MatrixRW,5675893,630,392)
{
link(onRead,7116094:doReplace,[])
link(Matrix,8639906:Matrix,[(636,352)(615,352)])
link(X,3635459:Value,[])
}
Add(Memory,3635459,644,343)
{
Default=Integer(0)
}
Add(Replace,7116094,679,392)
{
SubStr="1310"
DestStr="#$"
link(onReplace,8639906:doAddStrLst,[(723,398)(723,338)(576,338)(576,279)])
}
Add(Replace,16389128,693,434)
{
SubStr="#$"
DestStr="1310"
link(onReplace,4681874:doWork1,[(737,440)(737,227)(536,227)])
}
Add(DoData,555283,413,238)
{
link(onEventData,4681874:doWork2,[])
link(Data,3162521:Text,[])
}
Add(ArrayEnum,6727792,616,434)
{
link(onItem,16389128:doReplace,[])
link(Array,8639906:StrLstArray,[])
}
Add(HubEx,4681874,532,231)
{
link(onEvent,8639906:doAdd,[])
}


Ну вот и мысль про Array появилась
карма: 22

0
Ответов: 9906
Рейтинг: 351
#11: 2008-01-17 22:18:20 ЛС | профиль | цитата
nesco писал(а):
Ну я это не говорил, зачем ты так?

Потому-что я не исключаю и такой вариант.
И что характерно, не вижу в этом катастрофы.
карма: 9

0
Разработчик
Ответов: 26163
Рейтинг: 2127
#12: 2008-01-17 22:25:53 ЛС | профиль | цитата
Galkov писал(а):
что он давно все понял
Это было, но вот этого --
Galkov писал(а):
а это мы тупые, и не поняли его продвинутого элемента
не было.
Компонент тут, вообще-то, мимо проходил и было правильно понято
Stasie писал(а):
В принципе то, это вопрос то не по компаненту, я думаю с компонентом все в порядке


карма: 22

0
Ответов: 446
Рейтинг: 7
#13: 2008-01-17 22:31:02 ЛС | профиль | цитата
nesco писал(а):
Вот один из вариантов решения, как раз и применяется метод замены на "левые" символы

Да, nesco, спасибо, похоже это то что мне надо.
Вернусь послезавтра - проверю и доделаю прогу, хотя хотел сегодня успеть сделать.
nesco писал(а):
Ну вот и мысль про Array появилась

Не, масль про Array с первого момента была, только я не так планировал реализовывать, я как то не додумался, что так можно?
А символ #$ - просто так взято, как самое редкое сочетание? Я так понимаю?


карма: 0
Время верстки: Текущее время: %time%
0
Разработчик
Ответов: 26163
Рейтинг: 2127
#14: 2008-01-17 22:43:42 ЛС | профиль | цитата
Stasie писал(а):
А символ #$ - просто так взято, как самое редкое сочетание?
Ну, можно сказать и так. Я с успехом применял этот метод для сохранения текста из StrList'a в *.ini файл, с последующим чтением обратно.
карма: 22

0
Гость
Ответов: 17029
Рейтинг: 0
#15: 2008-01-18 01:10:58 правка | ЛС | профиль | цитата


Редактировалось 2 раз(а), последний 2021-05-22 09:08:20
карма: 0

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)