|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
07.04.2019, 09:04 | #1 |
Пользователь
Регистрация: 21.09.2018
Сообщений: 99
|
Как разделить текстовую строку
Здравствуйте, есть строка, например:
ljkhhuIUYyhiygYGY765877............ ................................... и т.д. Строка больше 500 символов. Как разделить её на строки по 10 символов. То есть чтобы получилось: ljkhhuIUYy hiygYGY765 877....... и т.д. Использую Delphi 7 Если есть возможность, дайте пожалуйста кусок кода. Заранее благодарю. |
07.04.2019, 09:17 | #2 |
Участник клуба Подтвердите свой е-майл
Регистрация: 26.01.2008
Сообщений: 1,897
|
Код:
|
07.04.2019, 09:32 | #3 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Вот любители курочить строку удалениями, да еще в цикле. Это же говнокод чистой воды ) Например так гораздо эффективней
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
07.04.2019, 11:15 | #4 |
Заблокирован
Регистрация: 27.08.2010
Сообщений: 37
|
Но вообще-то вопрос был как разделить строку, на строки, без всяких там мемо
А тут вроде бы как по моему тупому разумению, надо попросту поставить знаки конца строки через каждые 10 символов Мне трудно спорить с авторитетами, тем более админами... И потому я внесу дополнение... Вы используете в качестве буфера Memo (в моём предложении это строка.) И дело вот в чём. Чем больше будет будет сечений, тем медленнее будет работать код. А всё потому что каждое действие отображается. Поэтому всегда, В любом случаем нужно ставить блокирующие скобки компонента. BeginUpdate и Endupdate И Copy Это второй тормоз Последний раз редактировалось leoparrd; 07.04.2019 в 11:21. |
07.04.2019, 11:22 | #5 |
Пользователь
Регистрация: 21.09.2018
Сообщений: 99
|
|
07.04.2019, 12:41 | #6 |
Заблокирован
Регистрация: 27.08.2010
Сообщений: 37
|
Alex711
Ну-ну. Попомните мои слова... Вот как подрежет Memo ваши данные... Сами скулить будете. Не верите? Ну хорошо. Возьмите memo и попробуйте загрузить в него текст, 300 - 400 кило... Если и загрузит что-то то посмотрите где срежет. И запомните. Ни один визуальный компонент не предназначен для обработки информации. Только для отображения. Для обработки существует ListString Вот с ним надо работать. Хотя и он ограничен... Тут уж я посоветовал бы вам поток. Или ручное выделение памяти. Если вы считаете что я даю заумные советы или как любят выражаться админы и модеры - говносоветы... то вам в область анализа и обработки информации соваться нечего. А то что вы с таким восторгом приняли недалеко ушло от первого примера, то что модер обозвал говнокодом. Свой пример я не стал приводить по той причине, что вам судя по всему это не надо. |
07.04.2019, 13:33 | #7 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
BeginUpdate и Endupdate конечно, кто спорит, если для отображения. Еще лучше стринглист и потом целиком в мемо. У ТС же речь же скорее всего об этом, а не обработке гигостроки
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
07.04.2019, 14:10 | #8 |
Заблокирован
Регистрация: 27.08.2010
Сообщений: 37
|
Никаких Memo
только ричедит. Там хоть ограничение снять можно Вашему же коду куча возражений. Человек задал вопрос. 500 символов разделить на строки по 10 Это 100 строк. Вы пишите (Length(s)-1) Это 100 раз будет вызываться куча действий. Зачем делать 100 раз, то можно сделать 1 раз Вы вызываете 100 раз Copy При этом она 100 раз создаёт собственный буфер и 100 раз запускает собственный цикл А если не 100 а больше 1000? Почем просто не взять и не 1 создать буферную строку. 2 Запустить цикл (один единственный) 3 наращивать буферную строку данными из исходной, попутно считая всё время до 10 4 как только 10 к буферной строке добавить D и A 5 Продолжать до конца строки строки, длина которой задаётся один раз. Это аналог функции Copy Но всё происходит один раз и за один цикл. На выходе буферная строка. Если её добавить в компонент рич или список, она сама рассыпется на строки. И работать это будет намного быстрее, когда строк будет 100 000 и больше. И более эффективней, если будет введён поток А теперь скажите, почему вы, модератор, давите на меня своими регалиями и любое моё возражение это куча минусов в репутации и бан, если я справедливо замечаю что подобные действия - тупость тупого. Вы считаете это глубоким оскорблением администрации. Сама же администрация набирает репутацию всякой глупостью и при этом налево и направо сыплет унижения и оскорбления... И при этом я не имею право поставить минус. А мне можно сразу 1000 минусов. Это извините бред. Репутация - это мозги. Я получаю её за знания и умения. которых у меня больше чем у вас. А вы меня выставляете идиотом и за оскорбление это не считаете. |
07.04.2019, 15:12 | #9 | ||
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Цитата:
Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 07.04.2019 в 15:20. |
||
07.04.2019, 15:44 | #10 |
Заблокирован
Регистрация: 27.08.2010
Сообщений: 37
|
Не вы, так кто другой. Вы в администрации и отвечаете за неё.
Раз на вас нашито столько лампасов, то что будет если я сведу более половины ваших ответов к нулю? Я не получу за это ни шиша или по шее от ваших коллег. А вы получить кучу репутаций, хотя не заслужили. Ваши ответы - полумеры и работают частично. Вот простейший пример Приходит супер-пупер в магаз. Мне говорит, НУЖЕТ СУПЕРПУПЕР ТЕЛЕК. 4k называется. Продавец перед ним расстелился, самы дорогую модель всучил.. Пришёл домой, выпендривается. И соседа бедняка, но учёного пригласил похвастаться. А сосед ему Это не 4K, а всего лишь Ультра эчь-ди А 4K пока в природе не существует. А 4K это бренд такой вешают для лохов вроде тебя. Вот что богатею делать? Что делать человеку, который получил якобы помощь от дяди с лампасами, а какой-то мудак вроде меня ему тюкает что он лоханулся по полной программе? Улавливаете проблему? А если человеку это нужно не на один раз, то с проблемами вскорости он обязательно столкнётся. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вывести byte в текстовую строку бинарными данными | Krasi | Помощь студентам | 1 | 08.10.2015 15:42 |
Перевод числа в текстовую строку, исправить код (FASM) | Tanchik0611 | Помощь студентам | 2 | 21.10.2012 16:29 |
как сформировать текстовую строку? | Volodymyr | Microsoft Office Access | 6 | 31.07.2011 12:49 |
excel разделить текстовую строку в ячейке на несколько ячеек!!! | Bandikoot | Microsoft Office Excel | 2 | 27.04.2011 15:05 |