![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 07.06.2012
Сообщений: 16
|
![]()
Привет всем. Сегодня писал экзамен, не доделал одно задание, препод разрешил дома доделать, но я не знаю в чем проблема
![]() Условие: "В файле input.pas дана строка символов. Добавить после каждой запятой одну точку, используя цикл while." Вот что у меня есть, вроде все как надо, но в файл не записывает. Код:
|
![]() |
![]() |
![]() |
#2 | |
Форумчанин
Регистрация: 23.09.2010
Сообщений: 682
|
![]()
даже не знаю как бы сказать, в чём ваша ошибка... Просто логика программы абсолютно неверная или её нет. Я уверен - если вы возьмете справочник по паскалю/дельфи и подпишите что делает каждый оператов, вы это поймёте. Ну в этом помогу вам
Цитата:
а это не удобно, т.к. текстовые файлы не позволяют себя читать и записывать одновременно логичнее будет считать что у вас типизированный файл символов: file of char В этом случае можно будет открыть файл чтение, и + он будет доступен для записи Итого Код:
Проще всего признать свою ошибку.
Гораздо труднее еЁ осознать и исправить. |
|
![]() |
![]() |
![]() |
#3 | |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
![]() Цитата:
Нам ведь нужно добавить в файл точку, а не заменить точкой символ после запятой. Ваша программа будет делать совсем не то, что нужно в задании. И вообще, одновременно читать из файла и писать в файл следует только с том случае, когда прекрасно осознаете, зачем это нужно. Во всех остальных случаях читать из файла и писать в тот же файл категорически не следует. В данной задаче можно предложить два варианта решения: 1. Если известно, что объем доступной памяти заведомо больше файла - считать файл целиком, а потом перезаписать его в измененном виде. 2. Иначе читать из одного файла, а писать в другой. По окончакнии один файл удалить, а другой - переименовать. |
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 07.06.2012
Сообщений: 16
|
![]()
Переписал по другому, вот результат:
1) Код:
Так-же и со второй: Код:
|
![]() |
![]() |
![]() |
#5 | |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
![]() Цитата:
Когда не компилится, компилятор ВСЕГДА пишет диагностику. |
|
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 07.06.2012
Сообщений: 16
|
![]()
В первой проге при попытке запуска такая ошибка:
[Error] Project2.dpr(10): Invalid compiler directive: 'F' [Error] Project2.dpr(22): Undeclared identifier: 'S' Во второй: [Error] Project2.dpr(23): Undeclared identifier: 'Sum' [Error] Project2.dpr(40): Undeclared identifier: 'Arr' |
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
![]()
А зачем Вы сюда это пишите?
Компилятор Вам четко указал место двух ошибок. По первой: судя по AssignFile, у Вас Делфи, а не Паскаль. Проверьте, как следует объявлять текстовый файл в Делфи. Со второй же ошибкой все совершенно прозрачно: и место и тип ошибки указаны совершенно правильно. |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 07.06.2012
Сообщений: 16
|
![]()
Если все так понятно, может поможете правильно написать, чего вам это стоит? Я уже второй день не могу это сделать, а завтра сдавать. Разумеется потом я направлю свои усилия чтобы понять в чем я был неправ.
|
![]() |
![]() |
![]() |
#9 | |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
![]() Цитата:
Ну, во-первых, установить Делфи на свой компьютер. Потому как вопрос по первой строке диагностики упирается исключительно во встроенную справку Делфи, которая Вам доступна, а мне - нет (в силу, как уже сказано, отсутствия Делфи на моем компьютере). По второй строке диагностики: Вы сами можете объяснить, что именно вы в ней (т.е. 22 строке кода) хотите сделать? |
|
![]() |
![]() |
![]() |
#10 | |
Пользователь
Регистрация: 09.02.2012
Сообщений: 39
|
![]() Цитата:
S:Integer; //Integer или чем оно является так же Sum,Arr:Integer; //Integer или чем оно является За [Error] Project2.dpr(10): Invalid compiler directive: 'F' разбирайтесь сами, не решать же нам за вас всё. |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Цикл в Delphi | Marikka | Общие вопросы Delphi | 11 | 08.06.2012 23:21 |
Цикл for в Delphi | AlexandЯ | Помощь студентам | 8 | 18.11.2011 08:12 |
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) | Mr.User | Помощь студентам | 9 | 23.11.2007 01:34 |