|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
13.10.2011, 15:04 | #1 |
Форумчанин
Регистрация: 25.04.2011
Сообщений: 107
|
Отсуствие видимых причин
Смысл программы: чтение из файла текста в массив строк, редактирование каждой отдельной строки.
Для удобства разбита на три процедуры и функцию. В отдельности всё работает кроме процедуры изменения, т.е я проверил функцию и процедуры ввода/вывода. Никак не могу найти ошибку, насколько я понимаю она не изменяет этот самый массив строк. Как-будто бы так, потому что программа выполняется, и записывает в файл тоже самое. Код:
Последний раз редактировалось Form_13; 13.10.2011 в 15:22. |
13.10.2011, 15:52 | #2 |
Форумчанин
Регистрация: 29.09.2011
Сообщений: 116
|
приведите пожалуйста пример входных данных
|
13.10.2011, 15:57 | #3 |
Форумчанин
Регистрация: 25.04.2011
Сообщений: 107
|
В файле text.txt например записано:
"У меня есть 3 рубля 80 копеек. А у тебя есть 107 рублей 34 копейки." После выполнения программы соответственно должно быть: "У меня три рубля восемьдесят копеек. А у тебя есть сто семь рублей тридцать четыре копейки." |
13.10.2011, 15:58 | #4 |
Форумчанин
Регистрация: 29.09.2011
Сообщений: 116
|
уберите из
Код:
|
13.10.2011, 16:02 | #5 |
Форумчанин
Регистрация: 25.04.2011
Сообщений: 107
|
Сделал, теперь программа просто подвисает при выполнении и её можно только остановить.
|
13.10.2011, 16:12 | #6 |
Форумчанин
Регистрация: 29.09.2011
Сообщений: 116
|
программа подвисает потому что после вставки буквенного значения позиция j не меняется и программа опять находит "рубл" или "руб.". получается вечный цикл.
после замены цифры на символы попробуйте увеличить j на 4. только тогда лучше использовать while или repeat с предварительной инициализацией j до цикла и увеличением внутри цикла на 1. |
13.10.2011, 16:21 | #7 |
Форумчанин
Регистрация: 25.04.2011
Сообщений: 107
|
Код:
|
13.10.2011, 16:34 | #8 |
Форумчанин
Регистрация: 29.09.2011
Сообщений: 116
|
1. заменил тип переменной flag на boolean
2. вместо Код:
Код:
полный текст: Код:
Последний раз редактировалось Dush; 13.10.2011 в 16:35. Причина: перенес flag:=false; |
13.10.2011, 16:37 | #9 |
Форумчанин
Регистрация: 29.09.2011
Сообщений: 116
|
у меня еще ругалось на объявление процедур чтения и записи:
у вас Procedure reading(F:text; var x:stroki); у меня Procedure reading(var F:text; var x:stroki); ну и запись соответственно и еще там надо разобраться с пробелами. вот что у меня получилось: У меня естьтри рублявосемьдесят копеек а у тебя есть сто семь рублейтридцатьчетыре копейки |
13.10.2011, 16:42 | #10 |
Форумчанин
Регистрация: 25.04.2011
Сообщений: 107
|
Уже гораздо лучше, но если например будет пустая строка, т.е:
"Дай мне 65 рублей. У меня всего 35 копеек!" Она затирает Всё что ниже пустой строчки. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Подсчет видимых строк при фильтрации | getikalex | Microsoft Office Excel | 4 | 15.09.2011 00:29 |
Access Violation и I/O error 103 без видимых причин | whatever | Помощь студентам | 2 | 10.12.2010 08:50 |
Загрузка памяти увеличивается без видимых причин | Парсифаль | Операционные системы общие вопросы | 20 | 28.06.2009 01:00 |
Копирование видимых ячеек | mephist | Microsoft Office Excel | 4 | 18.05.2009 11:18 |