![]() |
|
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]()
|
|
| arcsupport |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 24.10.2008 Репутация: нет Всего: 2 |
Добрый день. Есть подобный код:
Добавлено через 2 минуты Т.е. выполняется if ****, и, кроме того, не выходит из repeat until. В текстовом файле есть только русские и английские буквы, цифры, пробелы, точки, запятые. Больше ничего нет. Добавлено через 4 минуты и 20 секунд Кроме того:
|
||||
|
|||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 11 Всего: 130 |
Может быть, там не '', а ' ', т.е. пробелы лишние?
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| amsoft |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 201 Регистрация: 17.10.2009 Где: KZ, Astana Репутация: 1 Всего: 4 |
по условию оно у тебя и не должно срабатывать при пустом значении --------------------
"Кто бы ты ни был - не думай о себе слишком"Дельфин |
|||
|
||||
| arcsupport |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 24.10.2008 Репутация: нет Всего: 2 |
При пустой строке этот самый if не должен выполняться. А он выполняется.
Лишних пробелов точно нет. |
|||
|
||||
| Чoо |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 313 Регистрация: 22.9.2009 Репутация: нет Всего: 4 |
я думаю автор имел ввиду, что если массив s<>'', то переход на then происходит (хотя конструкция if then else всегда работает, только бывает не так как хочет автор) (кароч фигню я написал выше . Ну вобщем даже если в массиве ни чего нет, то происходит переход на then даже по условию s<>'') а действительно при значении '' он бы вышел из цикла
а что бы выходил из цикла, надо дополнить условие (s='') or (eof(f)) вообще думаю там действительно пробел где-то затесался Добавлено @ 09:24 arcsupport, покажите ваш текстовый файл, только зазипуйте его Это сообщение отредактировал(а) Чoо - 17.8.2010, 09:26 -------------------- ![]() OS: Debian Squeeze (kernel 3.8.2) IDE: qtCreator 1.3.1; Eclipse SDK 3.5.2 |
|||
|
||||
| arcsupport |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 24.10.2008 Репутация: нет Всего: 2 |
Сделал StrPas(s) и все заработало. Странно.
|
|||
|
||||
| Чoо |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 313 Регистрация: 22.9.2009 Репутация: нет Всего: 4 |
что-то мне интересно стало, почему так?
по идее, если сравнивать следующим образом x<>'', то аргумент справа будет иметь тип shortstring. если x:array [0..n] of char, то после
он будет иметь прежнюю длину n, а каждый элемент массива будет равен #0. Опять же по идее, сравнивать напрямую массив символов и shortstring компилятор не даст. Может он перед сравнением преобразует один из аргументов к соотв. типу и производит дальнейшее сравнение? *** ну вобщем без StrPas должно работать если сделать так:
-------------------- ![]() OS: Debian Squeeze (kernel 3.8.2) IDE: qtCreator 1.3.1; Eclipse SDK 3.5.2 |
||||
|
|||||
![]()
|
| Правила форума "Delphi: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |