![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| MFSham |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 28.8.2005 Где: Беларусь, Гродно Репутация: 1 Всего: 3 |
По условию прога берет данные из внешнего файла. В моем случае это массив. Вот что я накатал.
После заполнения массива компилятор почему-то переходит в конец кода, таким образом не выполняя оставшуюся часть кода. В чем тут дело? --------------------
Без ветра трава неподвижна. Без программ компьютеры бесполезны. |
|||
|
||||
| Самурай |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 20.10.2005 Где: Воронежская облас ть > Семилуки Репутация: 1 Всего: 1 |
Работает. Проверял. |
|||
|
||||
| MFSham |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 28.8.2005 Где: Беларусь, Гродно Репутация: 1 Всего: 3 |
Да, твой алгоритм работает, но :
другой, хотя интересно посмотреть и альтернативу. --------------------
Без ветра трава неподвижна. Без программ компьютеры бесполезны. |
|||
|
||||
| Zero |
|
||||||||||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: 8 Всего: 24 |
MFSham ты пишешь, на паскале или делфи???
Ошибки которые я вижу на первый взляд следующие: У тебя, тут написано как в делфи:
А тут, как в паскале:
В этой часте программы:
У тебя строка:
Присваевает значение str[i], <кол-во символов в строке> раз, а потом только выполняется инкремент:
Так стоп, да у тебя вообще смотри вот тут, в первой часте:
У тебя тут из файла содержащего данные происходит считывание, а потом в этом цикле:
Ты пытаешся путём открытия в записанные данные переприсвоить значения: Для этого напиши заместо команды Reset(f) --> ReWrite(f), т.е. создание по томуже пути будет, или др. словами перезапись.... И обрати внимание на замечания сказанные выше... |
||||||||||||||||
|
|||||||||||||||||
| Самурай |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 20.10.2005 Где: Воронежская облас ть > Семилуки Репутация: 1 Всего: 1 |
MFSham
Ну если мы пытаемся "убрать" из рассмотрения пустые строки, то нам нужно исследовать строки с рассчетом на то, что там могут оказать между цифрами n пробелов, которые мы должны пропускать. Также у нас могут быть неравные строки (т. е. у нас в одной строке меньше элементов, чем в дургой)... А что мы будет делать, если у нас в строке будут не цифры, а буквы? Если Вы приведете пример самой худшей ситуации, то к нему будет очень просто сделать решение... |
|||
|
||||
| Самурай |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 20.10.2005 Где: Воронежская облас ть > Семилуки Репутация: 1 Всего: 1 |
Вот функция, которая подгоняет строку из файла под строку, в которой есть только целые числа и они разделены только одним пробелом.
Если наша строка не является строкой с цифрами, то функция соответсвенно вернет пустую строку. |
|||
|
||||
| Самурай |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 20.10.2005 Где: Воронежская облас ть > Семилуки Репутация: 1 Всего: 1 |
Вот этот код берет любой файл и загоняет все целочисленные значения в массив, согласно строкам, в которых данные числа разположены. Вроде проверял...
|
|||
|
||||
| MFSham |
|
||||||||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 28.8.2005 Где: Беларусь, Гродно Репутация: 1 Всего: 3 |
Пишу на делфях.
По моему компилятору абсолютно без разницы. Я могу и ошибаться, но оба случая у меня работают одинаково.
Не знаю что ты тут увидел, но по моему все правильно
Аналогично. И зачем тут ReWrite(f)???
Никакого апокалипсиса с взятием данных из файла не предвидется Ввод данных абсолютно корректный, и тем болле матрица квадратная с элементами 0 и1. И короче, я нашел свою ошибку!-)
Спасибо за помощь! --------------------
Без ветра трава неподвижна. Без программ компьютеры бесполезны. |
||||||||||||
|
|||||||||||||
| Самурай |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 20.10.2005 Где: Воронежская облас ть > Семилуки Репутация: 1 Всего: 1 |
MFSham, А мой вариант? Он универсален для любого вида файла и не бегает по нму несколько раз...
|
|||
|
||||
| MFSham |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 28.8.2005 Где: Беларусь, Гродно Репутация: 1 Всего: 3 |
Я не спорю про универсальность алгоритма. Но если данные подаются на ввод в нормальном виде, то нафига изобретать велосипед, хотя это тоже полезно.
Несколько раз... Всего лишь 2 раза. Первый узнать количество строк, второй - загнать в массив. Вот собстна и усе. --------------------
Без ветра трава неподвижна. Без программ компьютеры бесполезны. |
||||
|
|||||
| Самурай |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 20.10.2005 Где: Воронежская облас ть > Семилуки Репутация: 1 Всего: 1 |
Проблема траты времени будет стоять в том случае, если я засуну в файл n-строк при n > 1000, что вполне может быть реальным для проектов.
Есть гарантия этого? |
||||
|
|||||
| MFSham |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 28.8.2005 Где: Беларусь, Гродно Репутация: 1 Всего: 3 |
Естественно, никакой гарантии нет, но данную матрицу в файл вводишь ты, не а левый юзер. И всегда можно проверить корректность ввода данных.
Да, тогда с быстротой обработки инфы получится не очень хорошо, но в моем случае кол-во строк врятли превысит 20. Так что ничего критического не предвидется!-) --------------------
Без ветра трава неподвижна. Без программ компьютеры бесполезны. |
||||
|
|||||
| Самурай |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 20.10.2005 Где: Воронежская облас ть > Семилуки Репутация: 1 Всего: 1 |
А зачем проверять корректность данных, если сразу можно распознавать строчку с учетом корректности? |
|||
|
||||
| MFSham |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 28.8.2005 Где: Беларусь, Гродно Репутация: 1 Всего: 3 |
Т.к. данные вводишь ТЫ, и если руки не из того места учетом корректности. А если руки из того места, то тебе, я думаю, не составит туда ввести матрицу 10x10 с элементами 0 и1 просто без пробелов. Ась? --------------------
Без ветра трава неподвижна. Без программ компьютеры бесполезны. |
|||
|
||||
| Самурай |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 20.10.2005 Где: Воронежская облас ть > Семилуки Репутация: 1 Всего: 1 |
MFSham
А если этот файл делает "секретарша", у которой интеллект и уровень образования ниже плинтуса? Надо в проектах все предусматривать... |
|||
|
||||
![]()
|
| Правила форума "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. |