|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
15.03.2013, 16:26 | #1 |
Пользователь
Регистрация: 23.12.2008
Сообщений: 74
|
Замена одного символа другим в строке
Привет всем!
Скажите, пожалуйста, как в строке заменить один символ другим? Допустим, заменить двоеточие на точку. Пробовал через format(), но я его не понимаю вообще... =\ |
15.03.2013, 16:39 | #2 |
Форумчанин
Регистрация: 06.01.2011
Сообщений: 369
|
Строка есть массив символов.
Перебираешь символы в цикле по индексу, если символ равен двоеточию, то меняешь его на точку.
Программирую по необходимости
|
15.03.2013, 16:44 | #3 |
Участник клуба Подтвердите свой е-майл
Регистрация: 26.01.2008
Сообщений: 1,897
|
Код:
|
15.03.2013, 16:45 | #4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
StringReplace
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
15.03.2013, 16:45 | #5 |
Пользователь
Регистрация: 23.12.2008
Сообщений: 74
|
Код:
Использовал StringReplace. Спасибо всем. Добавил отзывы Последний раз редактировалось D!zel; 15.03.2013 в 16:58. |
15.03.2013, 23:23 | #6 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
Но, если любопытно, то вот что внутри себя представляет StringReplace: Код:
вот его код: Код:
Код:
Вы уверены, что это намного проще и быстрее работает, чем Код:
p.s. приведённый выше код взят из папки исходников Delphi 2006 - модуль SysUtils.pas |
|
16.03.2013, 16:56 | #7 |
Пользователь
Регистрация: 23.12.2008
Сообщений: 74
|
Serge_Bliznykov, вы просто растоптали мой разум... :D
Но по "набиранию" кода - StringReplace меньше. Другой вопрос - кто из них более быстродействующий, и какой дает меньшую нагрузку на ЦП и ОЗУ в частности? Вчера также копнул в сторону repeat ... until, и while. И что касается repeat ... until и while, то при тестировании они нагрузили ЦП на 50% (из-за объема текста), и, подозреваю, что если бы они работали в режиме 64-бита, то нагрузили бы ЦП на 100%. Как быть? |
16.03.2013, 17:25 | #8 | ||
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
Цитата:
Код Shouldercannon будет меньше нагружать и ЦП и ОЗУ. Цитата:
Ваша программа нагрузила ЦП на 50% исключительно потому, что у Вас двухъядерный процессор. (и 32 или 64 - не важно) А любое однопоточное приложение приложение во время своей работы грузит ЦП ровно на 1 поток (если ему не мешают другие приложения), т.е. в Вашем случае - наполовину. И поэтому вычислительную нагрузку следует оценивать не по процентам, а по времени работы. Т.е. любой код (кроме многопоточного) нагрузит Ваш процессор на 50%, но более эффективный будет нагружать его в течение более короткого времени. |
||
16.03.2013, 17:30 | #9 |
Пользователь
Регистрация: 23.12.2008
Сообщений: 74
|
s-andriano, спасибо большое, что все разъяснили.
Добавил отзыв P.S. Пойду переписывать код |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Замена одного символа на другой | W0o0Lf | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 0 | 12.12.2012 18:31 |
Замена символа в строке! | Leximus | Общие вопросы Delphi | 2 | 12.12.2011 13:13 |
Замена определенного символа в строке на заданный. | vladjke | C++ Builder | 2 | 15.06.2011 00:02 |
ассемблер, замена символа в строке | tiger | Помощь студентам | 3 | 05.11.2009 15:25 |
Замена одного элемента строки другим | kkkggg | PHP | 1 | 18.10.2007 23:09 |