![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 19.04.2009
Сообщений: 70
|
![]()
Имеется текст вида "_105_204_321_847_247_132", нужно каждое число обработать по отдельности, например:
105*0.5; 204*0.5; 321*0.5; и т.д. умножение на 0.5 в данном случае только пример, на самом деле обарботка большая, просто надо как то числа, разделенные знаком "_", вырезать по отдельности. |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 09.11.2008
Сообщений: 68
|
![]()
1. Могу посоветовать использовать метод pos(). С его помощью можно найти расположение первого знака "_", а там уже от него отталкиваться.
2. Если все числа только из 3х цифр, то тут уже просто арифметика: первые 3 символа - число, 4 - "_". |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 19.04.2009
Сообщений: 70
|
![]()
К сожалению числа не только из 3х цифр
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 09.11.2008
Сообщений: 68
|
![]()
тогда 1-й метод... Сори, но исходник писать щас нет времени, могу только натолкнуть на мысль:
1. Узнаем положение знака "_". методом Pos(); (Его описание есть, метод достаточно распространенный). 2. Если "_" первый знак в тексте, то его пропускаем, опять используем Pos() чтоб узнать положение второго знака "_". 3. Нашли. Слева от него будет число, причем количество символов в нем, будут = положение второго знака "_" - положение первого знака "_". 4. Считываем число, обрабатываем. P.S. Знаю, читается устрашительно, но ничего очень трудного нет. Можно для этого дела использовать цикл. Ну там уже как захочешь. |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 19.04.2009
Сообщений: 70
|
![]()
А как пропускать знаки "_" которые уже пройдены?
Я имею ввиду если написать Pos('_',str); , то он всегда будет находить первый знак. Проще говоря как найти положение второго знака "_"? |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 09.11.2008
Сообщений: 68
|
![]()
можно использовать буфер (понимаю - слово ужасное, но не пугайся
![]() Но я не гарантирую что это самый надежный и правильный способ ![]() |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 29.01.2009
Сообщений: 411
|
![]()
Вот пример программки которая считает кол-во слов разделенных пробелом. думаю если ее немного переделать, то она подойдет для ваших целей.
|
![]() |
![]() |
![]() |
#8 |
Участник клуба
Регистрация: 28.03.2007
Сообщений: 1,814
|
![]() Код:
|
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 19.04.2009
Сообщений: 70
|
![]()
То что нужно!!! Спасибо SERG1980!
|
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 13.12.2006
Сообщений: 3,859
|
![]()
Возмите Tstringlist,выставьте разделителем подчеркивание, и присвойсте свойству text вашу строку. У вас получится список строк. Вот и все...
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Обработка текста | JRcoker | Общие вопросы Delphi | 5 | 31.07.2008 23:35 |
обработка текста | pvleo | Фриланс | 4 | 14.07.2008 05:19 |
Обработка текста | Absent | Помощь студентам | 2 | 20.05.2008 23:17 |
Обработка текста | Absent | Помощь студентам | 1 | 10.05.2008 19:56 |
Обработка текста | GAGARIN-NEW | Общие вопросы Delphi | 7 | 06.10.2007 15:25 |