Help - Работа с файлами |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Help - Работа с файлами |
ursus |
Сообщение
#1
|
Гость |
Помогите решить!!!!!!!!!!!, please!!!!
Для зачета 1 осталась: Число компонент файла f, компонентами которого являются целые числа кратно 10. Преписать компоненты файла f в файл g, изменяя порядок чисел в каждой десятке так, чтобы вначале шли отрицательные числа десятки, а за ними - неотрицательные |
Clon |
Сообщение
#2
|
Новичок Группа: Пользователи Сообщений: 37 Пол: Мужской Репутация: 0 |
Ну вот примерно так, если, конечно, я правильно понял задание
program ubu(input,output); Сообщение отредактировано: volvo - |
volvo |
Сообщение
#3
|
Гость |
Clon, у тебя жестоко нарушена структура программы. В частности, описания процедур внутри блока If ... Then ... Else
|
Clon |
Сообщение
#4
|
Новичок Группа: Пользователи Сообщений: 37 Пол: Мужской Репутация: 0 |
Тьфу, сорри, выложил по ошибке не то. Сейчас поправил
|
Malice |
Сообщение
#5
|
Профи Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: 20 |
Тьфу, сорри, выложил по ошибке не то. Сейчас поправил Все равно что-то не то, ни одного write(g,..) нет, как результат сохраняется ? Я думаю вот такой основной блок надо: nn:=0; reset(q); rewrite(w); Правда все положительные числа в обратном порядке встанут, ну и что, это не оговаривалось |
Clon |
Сообщение
#6
|
Новичок Группа: Пользователи Сообщений: 37 Пол: Мужской Репутация: 0 |
Ну не знаю, у меня все работает. Сначала пишет содержимое файла, а потом его отсортированный вариант.
|
volvo |
Сообщение
#7
|
Гость |
Clon, а ты на размер файла G после прогона твоей программы посмотреть не хочешь?
А задание было: Цитата Преписать компоненты файла f в файл g, изменяя порядок чисел в каждой десятке <...> |
Clon |
Сообщение
#8
|
Новичок Группа: Пользователи Сообщений: 37 Пол: Мужской Репутация: 0 |
volvo Ой...
Ну тогда так program ubu(input,output); |
Unknown |
Сообщение
#9
|
Гость |
Всем доброго времени суток!
У меня похожее задание: Заполнить файл f целыми числами, полученными с помощью генератора случайных чисел. Получить в файле g те компоненты файла f, которые являются четными. Но я чего-то вообще не догоняю, как работать с файлами... Мне всю прогу не надо, а хотя бы первую часть, т.е. заполнить файл f, даже не рандомно, а вручную, чтоб разобраться. Вот, что пишу я: Код var f:file of integer; a,i:integer; begin assign(f,'file.dat'); rewrite(f); repeat write(f,a); until eof(f) end. По идее, юзер вводит последовательность целых чисел до тех пор, пока не будет нажата комбинация Ctrl+Z и Enter, и вся эта последовательность сохраняется в файле с именем file.dat. Все верно? Или я что-то не так понял? Не работает... Имеет ли значение, работаю я в Турбо или в Борланд Паскале? |
volvo |
Сообщение
#10
|
Гость |
Unknown, во-первых, где ты получаешь значение от пользователя? Нету этого, добавь...
А во-вторых, перед завершением программы не забудь сделать Close(f), чтобы все внесенные значения гарантированно записались в файл, иначе все записанное в буфер просто будет потеряно... |
Гость |
Сообщение
#11
|
Гость |
volvo, сорри, close(f) я просто забыл написать, а, т.к. я - гость, редактировать посты не могу...
Проблема в том, что при прогоне программы она никак не взаимодействует с юзером(просто мигает экран и все): на строке write(f,a); ничего не происходит, а на строке until eof(f) условие считается выполненным, несмотря на то, что Ctrl+Z не нажаты... Еще раз повторю вопрос: имеет значение, пишу я на Турбо Паскале или на Борланд Паскале? Просто некоторые различия у них есть, может различия есть и в работе с файлами? |
Гость |
Сообщение
#12
|
Гость |
volvo, а разве строка write(f,a); не отвечает за "получение значения от пользователя"? За что тогда отвечает эта строка?
|
volvo |
Сообщение
#13
|
Гость |
Эта строка пишет содержимое переменной a в файл... А вот где ты запрашиваешь то значение, которое будет записываться?
Кстати, я сейчас еще кое-что заметил: eof(f) будет истиной сразу же, поэтому после записи первого значения цикл у тебя закончится... Для того, чтобы продолжать цикл до нажатия Ctrl+Z тебе надо сделать until not eof; { <--- С клавиатуры !!! } Возможно, в Турбо и Борланд Паскале и есть какие-то отличия, но здесь разницы абсолютно нет. |
Гость |
Сообщение
#14
|
Гость |
Ага... Кажется, понял! Огромное спасибо!
|
Текстовая версия | 12.01.2025 13:21 |