Вверх ↑
Этот топик читают: Гость
Ответов: 1291
Рейтинг: 47
#31: 2019-02-22 13:20:21 ЛС | профиль | цитата
nesco, да, я так и подумал. Часто замечал это в других программах смену дефолтов по последнему месту сохранения/открытия.
Galkov, спасибо! Этому место в справке.. Честно гуглил и искал по форуму "пути в хиасм", "экранирование" не особо помогло. Мне кажется надо создать нечто вроде вики с категориями. Файлы - Пути - Экранирование. Чтобы если возник вопрос, сразу его там найти или задать. А так все размазано по форуму.
Netspirit, согласен, спасибо, я так и сделал, см выше последнюю схему.

Теперь другой вопрос назрел по строкам. В программе применяю конкатенацию строк через разделитель, насколько длинной можно сделать подобную строку без обрушения программы? В инете гуглил на максимальную длину строки в Дельфи, нашел что ограничена она лишь памятью системы. Так ли это? Могу я пихать в Мемо, Memory сверхдлинные строки, или лучше оптимизировать программу? Хотя времени на это нет, заказчик торопит. (
Можно конечно набросать простой тест)

Редактировалось 4 раз(а), последний 2019-02-22 13:29:08
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Ответов: 4628
Рейтинг: 749
#32: 2019-02-22 15:01:20 ЛС | профиль | цитата
Теоретический предел - 2Гб. На практике - ограничивается максимальным непрерывным свободным блоком памяти процесса. Скажем, где-то до 1 Гб, в зависимости как использует память программа и как звезды в небе располагаются. Пихать в Memo больше нескольких десятков Кб или слишком часто - не советую: тормозит страшно. В Memory, StrList - приемлемо.
Чем больше длина строки при операциях с ней (типа склеивания) и чем чаще такие операции проводятся - тем заметнее будет падение быстродействия.

Aziz писал(а):
Можно конечно набросать простой тест
Можно. Скармливаешь файлы разных размеров на StreamConvertor.StreamToStr и смотришь на каком размере программа упадёт. При этом надо понимать, что в процессе работы строка может копироваться несколько раз, следовательно, памяти при этом расходуется кратно больше.

Редактировалось 3 раз(а), последний 2019-02-22 15:05:34
карма: 26

0
Ответов: 1291
Рейтинг: 47
#33: 2019-02-22 15:48:54 ЛС | профиль | цитата
Netspirit, спасибо. да, в визуальные компоненты я как-то интуитивно понимаю что они не справятся и не перегружаю. Склейка будет типа этого - человек выбрал категорию картинок, затем несколько картинок, штук 10 или больше открыл и ввел в программу. При этом их пути склеиваются через разделитель в одну длинную строку с символами начала и конца боока по концам строки. Также вначало этой строки ставится название категории картинок тоже в тегах. В итоге имеем одна строка - одна категория картинок. Но картинок в категории может быть и 10 и 100. А пути довольно длинные всегда строки. Вот и думаю как вся эта конструкция будет на практике работать. Сейчас с 4-5 файлами в строке пашет.

Редактировалось 3 раз(а), последний 2019-02-22 22:29:52
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Ответов: 4628
Рейтинг: 749
#34: 2019-02-22 16:05:32 ЛС | профиль | цитата
Aziz писал(а):
При этом их пути склеиваются через разделитель в одну длинную строку с символами начала и конца боока по концам строки
Лучше добавлять в StrList, по окончанию - брать текст с точки Text, а в нем переводы строк заменять на требуемые разделители (или на пустоту, если символы начала/конца блока добавлять к строкам перед добавлением в список).
Aziz писал(а):
А пути довольно длинные всегда строки
Если не ошибаюсь, в текущей реализации весь путь не может превышать 260 символов. Так что 100*(260+ещё немного), или 1000 * 260 - это не проблема.
карма: 26

0
Ответов: 1291
Рейтинг: 47
#35: 2019-02-22 22:05:34 ЛС | профиль | цитата
Netspirit, написал длинный ответ тебе, но форум не сохранил( Повторно лень писать. ) Надо всегда копировать в буфер текст перед отправкой..
Да, это плохой стиль программирования - горизонтальное накопление данных или горизонтальные базы данных. Но читал что любая самая длинная строка в памяти все равно хранится последовательно, так что нет особых ограничений. Ты написал про ограничение в 2Гб. Этого для текста точно хватит)
Я бы попробовал не лепить длинные строки, но тогда усложнится логика программы. Сейчас каждая строка - это категория с похожими текстами. Им будет соответствовать еще и массив картинок. Такая структура удобна для сохранения ее в общий структурированный файл и загрузки из него, а также перебора как массив. Но посмотрим как проявит себя. Если начнет падать то придется переделывать формат файла хранения данных программы, усложнять его.

Редактировалось 2 раз(а), последний 2019-02-22 22:07:43
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Разработчик
Ответов: 26113
Рейтинг: 2126
#36: 2019-02-22 22:08:53 ЛС | профиль | цитата
Aziz писал(а):
Такая структура удобна для сохранения ее в общий структурированный файл

А че не база данных, тот же SQLite?
карма: 22

0
Ответов: 1291
Рейтинг: 47
#37: 2019-02-22 22:23:12 ЛС | профиль | цитата
nesco, там вроде длл прицепом таскать надо. Не люблю хвосты. Если ты конечно не поделишься секретным компонентом как в память распаковыаать длл-ки и там использовать)) И надеялся что обычных строк хватит. Посмотрим.

Редактировалось 1 раз(а), последний 2019-02-22 22:23:50
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Разработчик
Ответов: 26113
Рейтинг: 2126
#38: 2019-02-22 22:33:25 ЛС | профиль | цитата
Aziz писал(а):
там вроде длл прицепом таскать надо. Не люблю хвосты.

Не нужен там никакой dll, подпихиваешь специальный obj файл и все компилируется в приложение. Юзай тему "sqlite - с чем его едят", там все это описано.

Редактировалось 2 раз(а), последний 2019-02-22 22:38:26
карма: 22

0
Ответов: 1291
Рейтинг: 47
#39: 2019-02-22 22:37:23 ЛС | профиль | цитата
И где его найти и куда подпихивать?) Потому что схемы из примеров помню писали что sql dll не найден.

--- Добавлено в 2019-02-22 22:39:38

Нашел! Спасибо, изучу..
http://forum.hiasm.com/topic/7573

Редактировалось 2 раз(а), последний 2019-02-22 23:04:32
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Разработчик
Ответов: 26113
Рейтинг: 2126
#40: 2019-02-22 22:42:41 ЛС | профиль | цитата
Вот это еще почитай -- Работа с SQLite_OBJ

PS Ну заглядывай ты все же иногда в WIKI, куча вопросов отпадет

Редактировалось 1 раз(а), последний 2019-02-22 22:44:45
карма: 22

0
Ответов: 1291
Рейтинг: 47
#41: 2019-02-22 23:00:47 ЛС | профиль | цитата
nesco, спасибо если бы было время и здоровье, все бы здесь перечитал и в Гугле) .. И так по ночам приходится не спать чтобы напрограммировать то что обещал к сроку..
Глаза уже не те что лет 5 назад, все меньше хочется читать и напрягать. Буковки двоятся.. Все больше нагрузки на них.

Редактировалось 1 раз(а), последний 2019-02-22 23:17:55
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Разработчик
Ответов: 26113
Рейтинг: 2126
#42: 2019-02-23 01:49:49 ЛС | профиль | цитата
Aziz писал(а):
Глаза уже не те что лет 5 назад, все меньше хочется читать и напрягать. Буковки двоятся.. Все больше нагрузки на них.

Очки не пробовал заиметь?
карма: 22

0
Ответов: 1291
Рейтинг: 47
#43: 2019-02-23 16:56:39 ЛС | профиль | цитата
nesco, нет, пока надеюсь что восстановятся.. Все дело мне кажется в зрительной нейросети. Эффект "ленивого глаза". Когда от тоски и рутины бытовухи мозг уже отказывается видеть. Мы же видим в основном мозгом, а не глазом. Посмотрим..
Это я глаза недавно в прошлом - позапрошлом году испортил, смотря запоем все серии Доктора Кто подряд с айпада в темноте, лежа в кровати..

Редактировалось 1 раз(а), последний 2019-02-23 16:58:25
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Разработчик
Ответов: 26113
Рейтинг: 2126
#44: 2019-02-23 17:22:23 ЛС | профиль | цитата
Aziz писал(а):
пока надеюсь что восстановятся.

Ага, я тоже так думал. Увы, физиология есть физиология, и с возрастом мышцы только ослабевают, как их не тренируй.
карма: 22

0
Ответов: 1291
Рейтинг: 47
#45: 2019-02-23 22:57:51 ЛС | профиль | цитата
nesco, не, я так просто не сдамся) "Мощный дух спасает расслабленное тело" (с) Материя производна) Программа может преодолеть ограниченность железа и даже пережить его..
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)