|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.03.2011, 18:14 | #1 |
Пользователь
Регистрация: 02.10.2008
Сообщений: 13
|
Как вывести символы из строки?
дана строка S:string
S:='123456' как вывести первые два символа? |
14.03.2011, 18:24 | #2 |
Форумчанин
Регистрация: 06.01.2011
Сообщений: 369
|
Lord_Rufus, любой поисковик на запрос "delphi операции со строками" дает на первой же странице ответ.
Функция копирования части строки: Код:
Программирую по необходимости
|
14.03.2011, 19:18 | #3 |
Очень суровый
Участник клуба
Регистрация: 17.12.2009
Сообщений: 1,988
|
Можно еще так:
Код:
Ненавижу быть как все, но люблю, чтобы все были как я.
|
14.03.2011, 20:38 | #4 | |
Форумчанин
Регистрация: 26.07.2009
Сообщений: 489
|
Цитата:
1. Поскольку есть специализированные методы для работы со строками, которые по производительности будут быстрее 2. Строка начинается с индекса 1 3. Даже если бы ты соблюдал пункт 2 при Length(s) = 0 у тебя будет ошибка доступа Так что не "быдлокодь", потому что верный вариант уже написали
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.
Последний раз редактировалось chertovich; 14.03.2011 в 20:41. |
|
14.03.2011, 22:02 | #5 |
Очень суровый
Участник клуба
Регистрация: 17.12.2009
Сообщений: 1,988
|
Чертович, я писал в забитом автобусе через моб. телефон) Пришел домой, увидел ошибку. Да признаю, что правильно будет вот так:
Код:
Теперь я хочу услышать твои аргументы, почему Copy() производительнее цикла с двумя аргументами.
Ненавижу быть как все, но люблю, чтобы все были как я.
|
15.03.2011, 08:41 | #6 |
кривокодер ;)
Форумчанин
Регистрация: 20.06.2008
Сообщений: 707
|
Дело не в производительности. Дело в возможной ошибке доступа.
Как написал Чертович(извиняюсь за склонение имени), если в функции скормить пустую (s:=''; ) строку (либо запросить символы по номеру больше длины строки) - просто-напросто выскочит ошибка Access Volation с указанием области памяти... Потому что в таком случае s[1] будет иметь мусорный указатель, которого в области памяти программы скорее всего не будет. Для избежания этого придется делать лишние проверки валидности строки и номеров символов... Это было "во-первых". А Во-вторых, автор не указывал, что ему необходимо самое высокое быстродействие. В-третьих Copy() намного проще в реализации.
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид} |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
как удалить лишнеие символы в строке, и ограничить длину строки | MixanMM | Общие вопросы Delphi | 3 | 11.06.2009 07:03 |
как из строки ТМемо удалить ненужные символы | MixanMM | Общие вопросы Delphi | 3 | 10.06.2009 13:49 |
Строки. Как вывести часть строки? | Anfall | Общие вопросы Delphi | 7 | 26.02.2009 09:10 |
считать из файла две строки, вывести на экран символы первой строки, которые отсутствуют во второй | gotex | Помощь студентам | 4 | 08.05.2008 02:27 |
Как вывести в цикле for ... do строки? | ViTYAi2007 | Помощь студентам | 14 | 27.03.2008 05:47 |