Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.03.2011, 00:51   #1
ofenod
Пользователь
 
Регистрация: 30.03.2011
Сообщений: 24
По умолчанию Порядковый номер последней точки текста

Как определить, каким по порядку символом с начала текста является последняя точка текста?
ofenod вне форума Ответить с цитированием
Старый 30.03.2011, 01:01   #2
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Код:
var 
s : string;
i,n:integer;
...
for i := 1 to length(s)
  do if s[i] = '.'
    then n := i;
writeln(n);
это циклом , а ещё можно pos использовать , но мой моск уже спит, в справку лезть за точными параметрами тоже ломит...
если интересно зайдите в справку, а так и мой вариант норм должен работать (хотя он без проверки )
phomm вне форума Ответить с цитированием
Старый 30.03.2011, 01:16   #3
ofenod
Пользователь
 
Регистрация: 30.03.2011
Сообщений: 24
По умолчанию

Цитата:
Сообщение от phomm Посмотреть сообщение
Код:
var 
s : string;
i,n:integer;
...
for i := 1 to length(s)
  do if s[i] = '.'
    then n := i;
writeln(n);
это циклом , а ещё можно pos использовать , но мой моск уже спит, в справку лезть за точными параметрами тоже ломит...
если интересно зайдите в справку, а так и мой вариант норм должен работать (хотя он без проверки )
Спасибо, всё чётко описано.
ofenod вне форума Ответить с цитированием
Старый 30.03.2011, 08:27   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ну, более эффективно перебирать символы с конца и прерываться, как только нашлась точка:
Код:
  n := 0; {если ноль - точка не найдена}
  for i:= length(s) downto 1 do
    if s[i]='.' then begin
      n := i;
      break; {всё. прервать цикл}
    end;
добавлено

Маленькое пояснение для TC
Код перебирает с конца строки,индекс сначала становится равным длине строки, потому уменьшается, до тех пор, пока не встретится точка.
Поясню на примере.
если:
Мир.Труд.Май!
то перебор будет от 13 (символ !) потом 12, 11,10 и на i=9 оставится.
Ответ - 9-й символ.

Последний раз редактировалось Serge_Bliznykov; 30.03.2011 в 10:38.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определить порядковый номер 1-го положительного элемента массива А BaNNeD Помощь студентам 4 19.12.2010 19:10
Как изменить порядковый номер на наименование услуги pigas Microsoft Office Excel 5 14.06.2010 19:40
Порядковый номер записи Yur@ БД в Delphi 4 25.12.2009 08:37
порядковый номер недели skalt12 Общие вопросы Delphi 7 01.12.2009 16:52
Порядковый номер item-a. blackstersl Общие вопросы Delphi 1 05.06.2009 20:55