|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Стереть данные до знака
Здравствуйте!
Есть: Edit1, значение которого - "asdqwerty (рандомное число от 0 до 300)" Нужно: Убрать значение в скобках из Edit`а, чтобы в итоге получилось - "asdqwerty". Проблемы: Значение может быть (0), ... ,(10), ..., (100), ..., (300), то есть удалять кол-во символов не вариант, так как оно может меняться. |
#2
|
|||
|
|||
Код:
function KillTrailingDigits(S: string): string; var i, idx: Integer; begin idx := 0; for i := Length(s) downto 1 do if s[i] in ['0'..'9'] then Inc(idx) else Break; Result := Copy(s, 1, Length(s) - idx)); end; Последний раз редактировалось phomm, 17.07.2014 в 15:38. |
#3
|
|||
|
|||
Цитата:
Пример значения - "aklsdjakls(312)". Скобки! |
#4
|
|||
|
|||
Конечно не работает. Код даётся не для копипасты, а для вдумчивого изучния и поиска зерна. Лично я не понял что скобки именно присутствуют в строке, я думал, вы так указываете их обособленность от остальной строки.
Направление для исправления кода - исправить подсчёт символов для удаления, для чего помимо цифр использовать и скобки, где цифры проверяются, видите ? Вот там же и скобки добавить. |
#5
|
||||
|
||||
Код:
function ptg(ds:string):string; var i: integer; begin for i := 1 to Length(ds) do if ds[i] <> '(' then Result:= Result + ds[i] else Exit; end; Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#6
|
|||
|
|||
Я правильно понимаю, нужно копировать текст до первой открывающейся скобки?
Код:
s:=Copy(s, 1, Pos('(',s)); |
Этот пользователь сказал Спасибо x128 за это полезное сообщение: | ||
Denisonin (22.07.2014)
|
#7
|
||||
|
||||
Сделай конечный автомат.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#8
|
||||
|
||||
Ищем открывающуюся скобку (Pos). Ищем закрывающуюся скобку (Pos/PosEx). Удаляем кусок строки по полученным индексам.
Если же после скобок ничего быть не может - то как сказал x128. jmp $ ; Happy End! The Cake Is A Lie. |