|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
08.08.2007, 17:55 | #1 |
Пользователь
Регистрация: 08.08.2007
Сообщений: 12
|
Проблеммы с использованием функций работы со строками Copy и Pos
Всем привет! У следующая проблема. Я программирую на Delphi 7. Возникла необходимость работать со строкой. Ищу позицию нужного мне слова в фразе при помощи функции Pos , а потом с этой позиции копирую слово определенной длины при помощи функции Copy. Весь код работы со строкой у меня находится в отдельной процедуре.Проблемма вот в чем. Когда я вызываю эти функции первый раз, то все работает, но когда я пытаюсь повторить с поиском нового слова, то номер позиции указывается, а вот скопировать часть текста из фразы не получается. После повторного вызова функции Copy у меня она возвращает пустую строку, строка, из которой копировалось тоже пустая и выполнение программы сразу перескакивает к концу процедуры. Как ни пробывал, не могу понять в чем проблемма. Может уже кто сталкивался с такой проблеммой? Подскажите, как решить! |
08.08.2007, 18:00 | #2 |
Старожил
Регистрация: 13.12.2006
Сообщений: 3,859
|
мы не медиумы, год показывайте
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи |
08.08.2007, 18:00 | #3 |
я получил эту роль
Старожил
Регистрация: 25.05.2007
Сообщений: 3,694
|
"Моя программа орёт access violation и посылает всех матом. что делать?"
Код в студию!
пыщь
|
08.08.2007, 18:51 | #4 |
Пользователь
Регистрация: 08.12.2006
Сообщений: 36
|
Знание этого – Мудрость.
Умение этим пользоваться – Искусство. |
08.08.2007, 23:17 | #5 |
Пользователь
Регистрация: 08.08.2007
Сообщений: 12
|
pinhead, спасибо за подсказку!
А код достаточно простой. // StrRing := Оазис (уровень 5) 0:23:46 ч. Готово в 16:18 i := Pos(')', StrRing); Note := Copy(StrRing, 1, i); i := Pos('Готово в', StrRing); TimeRing := Copy(StrRing, i+9, Length(StrRing)-(i+9)); Вот что еще. Я обошел проблему тем, что разбил поиск каждой из фраз в отдельные функции. Сейчас попробывал опять объединить все в одну и ... о чудо. Все заработало. Что было? Может кто знает? Компьютер не перезагружал. Перезапускал Delphi, но вроде это я пробывал и раньше - не помогало. |
09.08.2007, 08:49 | #6 |
Старожил
Регистрация: 13.12.2006
Сообщений: 3,859
|
Мда... скажи лучше что тебе надо выделить из этой строки ? "Оазис (уровень 5) 0:23:46 ч. Готово в 16:18 "
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи |
09.08.2007, 09:43 | #7 |
Пользователь
Регистрация: 08.08.2007
Сообщений: 12
|
Да дело не в том, что я не могу выделить. Я уже много раз пользовался функциями работы со строками.
Но а так вот, что будет в переменных: Note := 'Оазис (уровень 5)'; TimeRing := '16:18'; Проблемма в том, что второе копирование не хотело выполняться и дальнейший код, что следовал после второго вызова функции Copy, проскакивыл и не выпалнялся. В чем проблемма была - не знаю. |
09.08.2007, 10:53 | #8 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Возможно оптимизатор срабатывал, если ты нигде больше ни раньше ни позже не используеш вторую пременку, то и компилить ее незачем.
I'm learning to live...
|
09.08.2007, 11:02 | #9 | |
Форумчанин
Регистрация: 07.08.2007
Сообщений: 154
|
Цитата:
Код:
|
|
09.08.2007, 12:14 | #10 |
Пользователь
Регистрация: 08.08.2007
Сообщений: 12
|
Aristarh Dark, спасибо! Буду иметь в виду данныйе функции.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Разработка программ с использованием функций. Табулирование функции одного и двух переменных | кася | Паскаль, Turbo Pascal, PascalABC.NET | 5 | 07.05.2008 20:11 |
использование процедур и функций для работы с массивами.....Паскаль.... | КиношкА | Помощь студентам | 6 | 13.01.2008 14:23 |