Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 3 556

/ вопрос открыт /

Приветствую, уважаемые эксперты!Прошу ответить начинаюшему! Создал строку string пустую с определенным размером пример 100 теперь хочу ее заполнять прицельно по нужным позициям например с 12 по 20 поставить 1 а остальные чтоб остались как и были 0-ми

Приложение:
  1. SetLength(emptystr,size);


ramazan Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: ramazan (статус: Посетитель)
Вопрос отправлен: 22 декабря 2009, 10:13
Состояние вопроса: открыт, ответов: 2.

Ответ #1. Отвечает эксперт: Вадим К

Здравствуйте, ramazan!
Заполнить нужными символами просто - emptystr[1] := '2' и первый символ в строке уже два.
что бы с 12 под 20 заполнить единичками, это просто

for i:= 12 to 20 do
  emptystr[i] := '1';
Но я вижу маленькое недополнимания в вопросе. в фразе "остальные чтоб остались как и были 0-ми"
Дело в том, что надо различать символ "0" и байт с значением(кодом) 0. функция SetLength не обещает заполнения ни тем, ни другим. Поэтому придется заполнять ручками. Но! если какой то символ в строке имеет код 0, то это значит, что это конец строки! И если символы с 12 по 20 будут иметь код 1 или "1", а остальные 0 (код 0), то строка будет пустой.
Поэтому, наверно правильный код для Вас выглядит так:
for i:= 1 to size do
  emptystr[i] := '0';
for i:= 12 to 20 do
  emptystr[i] := '1';

Но если все таки захочется вписать туда код 0 или 1, а не символ (странно это конечно), то тогда надо просто заменить '0' на #0 и так дальше. или на chr(0).

Ответ отправил: Вадим К (статус: Академик)
Время отправки: 22 декабря 2009, 10:44
Оценка за ответ: 5

Ответ #2. Отвечает эксперт: min@y™

Доступ к символам по индексу:

emptystr[Index]:= <символ>;

Цитата:


а остальные чтоб остались как и были 0-ми

После SetLength() в строке символы будут не нулевыми, а в общем случае там будет случайны мусор.

Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 22 декабря 2009, 10:46
Оценка за ответ: 4

Комментарий к оценке: Спасибо!

Мини-форум вопроса

Всего сообщений: 2; последнее сообщение — 22 декабря 2009, 15:11; участников в обсуждении: 2.
Яуген Таляныч

Яуген Таляныч (статус: Посетитель), 22 декабря 2009, 14:56 [#1]:

Мне кажется, автору надо бы взять не string, a array of byte.
Обнулить, конечно, самому.
ramazan

ramazan (статус: Посетитель), 22 декабря 2009, 15:11 [#2]:

спасибо!Всем ! Прочитал все что вы мне посоветовали. И на счет того #0 ,#1 или '1','0' для моей задачи кажется второе лучше.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 16:40
Выполнено за 0.02 сек.