Как сохранить текст программы в turbo pascal
Основные приемы работы в среде Турбо Паскаля
Работа с файлами
Как уже говорилось, сразу после запуска Турбо Паскаля среда переходит в режим редактирования текста, в котором можно подготовить новую программу или исправить существующую.
Основной формой хранения текстов программ вне среды являются файлы. После завершения работы с Турбо Паскалем можно сохранить текст новой программы в дисковом файле с тем, чтобы использовать его в следующий раз. Для обмена данными между дисковыми файлами и редактором среды предназначены клавиши F2 (запись в файл) и F3 (чтение из файла). Если Вы создаете новую программу, то среда еще не знает имя того файла, в который Вы захотите поместить текст этой программы, и поэтому она присваивает ей стандартное имя NONAME00.PAS (NO NAME — нет имени). Для сохранения текста программы в файле нужно нажать F2. В этот момент среда проверит имя программы и, если это стандартное имя NONAME, спросит, нужно ли его изменять: на экране появится небольшое окно запроса с надписью
(Сохранить в файле с именем. )
Ниже надписи располагается поле для ввода имени файла, в котором можно написать нужное имя и нажать Enter — текст будет сохранен в файле. Если в имени опущено расширение, среда присвоит файлу стандартное расширение PAS. Если Вы захотите завершить работу с Турбо Паскалем, а в редакторе остался не сохраненный в файле текст, на экране появится окно с запросом
NONAMEOO.PAS has been modified. Save?
(Файл NONAME00.PAS был изменен. Сохранить?)
В ответ следует нажать Y(Yes — да), если необходимо сохранить текст в файле, или N(No — нет), если сохранять текст не нужно.
Как сохранить текст программы в turbo pascal
Все, что необходимо начинающему и опытному программисту
Файлы: сохраняем результаты работы до следующего раза
Как вам должно быть известно из общего курса информатики, память, с которой работает Паскаль и в которой он хранит все свои данные (как и любая другая программа), называется оперативной. Она обладает одним неприятным свойством: ее содержимое стирается при выключении питания компьютера. Чтобы информация сохранялась при выключенном питании (принято говорить «для долговременного хранения информации»), используется внешняя память. Это разного рода диски, дискеты и другие виды носителей. Работе с внешней памятью из программы на Паскале и посвящен наш текущий разговор.
Как работать с текстовым файлом
Файлом называется порция данных, хранящаяся на диске и имеющая имя. Другими словами, все, что вы пытаетесь сохранить на диске, должно быть записано в виде файла. Для того чтобы работать с файлом в Программе, необходимо ввести специальную переменную, которая называется файловой. Через нее мы будем записывать и читать информацию из файла.
Основным элементом текстового файла является символьная строка (ASCII). Можно работать как со строкой целиком, так и с каждым символом в отдельности. Обращение к символам, хранящимся в файле, происходит последовательно.
Открытие файла для чтения
Начиная работать с файлом, его открывают. При этом в памяти создается особая структура данных, частью которой является файловый указатель. Это как бы «курсор», который указывает на позицию файла, с которой будет происходить следующая операция чтения (или записи). После чтения символа (или строки) из файла файловый указатель передвигается на следующий символ (строку). При записи в файл эта позиция всегда указывает на конец файла.
Мы начнем с самого простого — попытаемся открыть текстовый файл для чтения и выведем его содержимое на экран. Для того чтобы программе было что открывать, создайте в Блокноте или прямо в среде Turbo Pascal текстовый файл и назовите его work.txt. Этот файл должен быть сохранен в той же папке, что и рабочие (.pas) файлы с программой на Паскале. Содержимое файла нам не важно. Мы рекомендуем набрать несколько строчек текста, желательно латинскими символами.
Пример 12.1.
Вывод на экран содержимого текстового файла work.txt
Открытие файла для записи
Из предыдущего примера вы, вероятно, поняли, что открытие файла для чтения происходит в результате процедуры reset. При этом файловый указатель устанавливается в начало файла, и процедурами чтения из файла readln и read можно построчно или посимвольно прочитать содержимое всего файла. Если же мы хотим не читать уже имеющийся файл, а записывать в файл свою информацию, мы должны открыть файл для записи. Это делает процедура rewrite.
Если в текущей папке нет файла с именем, указанным в процедуре assign, то создается новый пустой файл. Если файл с таким именем есть, его содержимое очищается. Так или иначе, файловый указатель устанавливается в начало пустого файла, после чего в файл можно записывать информацию построчно (writein) или посимвольно (write).
В следующем примере программа создает новый текстовый файл work.txt и копирует его содержимое в файл user.txt.
Пример 12.2.
Создание и копирование файла
После работы программы откройте оба файла (это можно сделать в режиме Open в среде Turbo Pascal или в Блокноте) и убедитесь, что все получилось верно.
Если вы вводили эти три строки по-русски, то в Блокноте вы, скорее всего, увидите странную путаницу из русских букв. Это от того, что Turbo Pascal — программа для MS-DOS, и символы, которые вы вводили, тоже были записаны в кодировке MS-DOS. Чтобы их нормально прочитать, нужно или открывать эти файлы из программы для MS-DOS (например, Norton Commander), или иснользовать преобразование формата (это умеет делать, например, MS Word).
Задание 12.1.
Напишите программу, которая:
а) создает текстовый файл из четырех строк строчных латинских букв;
б) читает строки из созданного файла и преобразовывает их в строки заглавных латинских букв;
в) после преобразования каждую строку записывает в другой созданный текстовый файл.
Проверьте результаты работы путем чтения обоих файлов!
2012-11-12 ответил бомж
Ввод-вывод, оператор присваивания, арифметические операции
Теоретический материал: файловый ввод-вывод (Паскаль)
Файлы. Виды файлов. Основные процедуры для работы с файлами
До сих пор мы рассматривали задачи, в которых во время выполнения программы данные поступают с клавиатуры, а результаты выводятся на экран дисплея. При этом ни исходные данные, ни результаты не сохраняются. Всякий раз при выполнении одной и той же программы, в частности, во время отладки, приходится заново вводить данные. А если их очень много? В языке Паскаль есть возможность записать их на диск. Для этого необходимо оформить исходные данные и результаты в виде файлов, которые хранятся на диске точно так же, как и программы.
Понятие файла — это фундаментальное понятие информатики, вспомним же его определение.
Определение. Файлом называется область памяти на диске, имеющая свое имя.
Вы знаете различные виды физических файлов: системные, графические, текстовые и другие, зачастую созданные той или иной прикладной программой. И любой из этих физических файлов Вы сможете считать, проанализировать, изменить и записать.
Физические файлы можно по-разному представить в программе. Язык Турбо Паскаль предлагает три вида представления файлов:
И Вы, в зависимости от решаемой задачи, вольны выбирать один их трех видов, а, может быть, и несколько. Для того, чтобы сделать правильный выбор, Вы должны хорошо знать не только процедуры и функции, являющиеся общими для всех видов файлов, но и специфичные для каждого вида.
Для работы с конкретным физическим файлом на диске надо представить в программе так называемую файловую переменную и произвести ее логическую связку с этим файлом. Файловые переменные имеют специфическое применение. Над ними нельзя выполнять никаких операций (присваивать значение, сравнивать и др.). Их можно использовать только для выполнения операций с файлами (чтения, записи, удаления файла и т.д.). Кроме того, через файловую переменную можно получить информацию о конкретном файле (тип, параметры, имя файла и т.д.).
По сути, любой физический файл можно представить как последовательность блоков информации некоторого типа. Все компоненты файла имеют общее имя, а каждый имеет еще и свой номер. Начальный элемент имеет нулевой номер.
Количество элементов файла может быть любым: число компонентов файла может изменяться (увеличиваться или уменьшаться), то есть, заранее не фиксируется. В файлах можно хранить достаточно большое количество данных. После каждого элемента файла автоматически ставится признак конца элемента, а в конце файла ставится признак конца файла.
С каждым файлом можно связать понятие «текущий указатель». Это неявно описанная переменная, которая указывает на конкретный элемент файла. Действия с файлами производятся поэлементно, причем в них участвует тот элемент, на который «смотрит» текущий указатель, перемещающийся в результате выполнения действия на следующий элемент.
Главное, чему необходимо научиться при работе с файлами — это записать информацию из программы в файл и считать нужную информацию в выделенную переменную для обработки программой. Общая последовательность действий при этом такова:
— описать переменную файлового типа;
— связать ее с конкретным физическим файлом процедурой assign;
— открыть файл процедурой reset или rewrite;
— выполнить чтение или запись информации;
— по окончании работы с файлом закрыть файл процедурой close.
Формат объявления файловых переменных и особенности работы с различными видами файлов (типизированными, нетипизированными, текстовыми) будут подробно изложены далее.
Процедуры и функции для работы с файлами любого типа
Переменные файлового типа используются в программе только в качестве параметров собственных и стандартных процедур и функций. Все фактические действия с файлами основаны на наборе стандартных процедур языка, входящих в состав модулей System и Dos.
Сначала рассмотрим процедуры модуля System.
Напомним, что он подключен к программам по умолчанию, то есть его не требуется подключать к программе в разделе Uses.
До начала работы с файлами устанавливается связь файловой переменной МуFilе с именем дискового файла. Очень важно различать собственно файл (область памяти на магнитном носителе с некоторой информацией) и переменную файлового типа в Turbo Pascal-программе. Считается, что файловая переменная является представителем некоторого дискового файла в программе. Для того, чтобы реализовать доступ к файлу на магнитном диске, программа должна связать его с файловой переменной. Для этого необходимо установить соответствие между переменной и именем файла. Это имя представляется в виде строки, содержащей имя файла и, может быть, путь к файлу, который формируется по общим правилам MS-DOS.
| assign (МуFilе, ‘с:\МуDirectory\Result.dat’); |
здесь приведено полное (с указанием пути) имя пользовательского файла Result.dat.
Если путь не указан, программа будет искать файл только в своем рабочем каталоге и, как это принято в системе DOS, по указанным в файле аutoехес.bat путям. Кроме указания имени файла на дисковом накопителе может быть указано стандартное имя одного из устройств ввода-вывода: «соn» — консоль, то есть дисплей и клавиатура, «рrn» — или «lpt1» — принтер.
Не разрешается связывать с одним физическим файлом разные файловые переменные программы.
До тех пор, пока файловая переменная не связана с каким-либо дисковым файлом, никакие операции с ней в программе невозможны. Заметим, что можно связать файловую переменную с еще не существующим дисковым файлом. Это делается в случае последующего создания Turbo Pascal-программой файла с данным именем с помощью специальной системной процедуры.
После того, как файловая переменная с помощью процедуры Аssign связана с конкретным дисковым файлом, с ним можно выполнить любую допустимую операцию.
Внимание! Нельзя применять процедуру assign к открытому файлу.
Все файлы, открытые в результате работы программы, должны быть закрыты при завершении программы процедурой
| closе (МуFilе); |
При выполнении этого оператора закрывается физический файл на диске, и фиксируются изменения, связанные с использованием данного файла. Обратите внимание на необходимость закрытия файлов во всех ветвях программы, в том числе в различных аварийных ситуациях. Незакрытые файлы нарушают файловую структуру на диске, что может приводить к серьезным проблемам с настройкой компьютера.
Открытие нового файла производится процедурой, единственный аргумент которой — переменная файлового типа, например:
| rewrite (МуFilе); |
Эта процедура создает на диске файл с именем, связанным с переменной МуFilе процедурой Аssign. Указатель работы с файлом устанавливается на начало файла. После выполнения процедуры rewrite файл доступен как для записи, так и для чтения (в случае текстовых файлов – только для записи).
Внимание! Если файл с таким именем уже существует, он удаляется (его содержимое теряется), и создается новый пустой файл с данным именем.
Открытие существующего файла выполняет процедура
| reset (МуFilе); |
Эта процедура ищет уже существующий файл на диске и открывает его для работы, помещая указатель в начальную позицию. Если файл с установленным в Аssign именем не найден, возникает ошибка ввода/вывода, контроль которой зависит от директивы компилятора (смотрите здесь). После выполнения процедуры reset файл доступен как для записи, так и для чтения (в случае текстовых файлов – только для чтения).
Запись в файл производится процедурой
| write (МуFilе, var1, var2, . varN); |
Первый аргумент этой процедуры — переменная файлового типа, далее следует список записываемых переменных, которые должны соответствовать объявленному типу файла. При выполнении этой операции текущий указатель файла смещается на число позиций, равное числу переменных.
Чтение из файла производится аналогичной процедурой:
| read (МуFilе, var1, var2, . varN); |
Примечание. Особенности выполнения операций записи и чтения для нетипизированных и текстовых файлов описаны в соответствующих разделах.
Положение элементов в файле нумеруется, начиная с номера 0 для первого элемента. После последнего элемента файла автоматически записывается признак конца файла.
Функция FileSize(МуFilе) определяет число элементов в файле. Функция неприменима к текстовым файлам. Файл MyFyle должен быть открыт.
Функция логического типа ЕОF(МуFilе) имеет значение Тruе, если указатель указывает на маркер конца файла (End Of File).
Как сохранить текст программы в turbo pascal
Подскажите пожалуйста. У меня есть сам исходник программы на Паскале. А мне нужен код программы в Ворде,как сохранить,чтобы долго самой не набирать текст?
Форумчанин
Регистрация: 23.11.2010
Сообщений: 530
блокнотом открой. если исходник с турбопаскаля русский текст будет в виде иероглифов. тут поможет какой нить текстовый редактор с выбором кодировки. Bred.NET например
Регистрация: 10.04.2010
Сообщений: 2,665
1. Открываете текст программы на паскале обычным блокнотом.
2. Выделяете текст программы.
3. Копируете его.
4. Вставляете его в Ворд.
5. PROFIT!
Белик Виталий 🙂
Регистрация: 23.07.2007
Сообщений: 57,792
Вообще-то Ворд если файл не имеет известного ему расширения (я имею ввиду через него открыть pas файл), сам предлагает выбрать кодировку. Нужно выбрать DOS 866 (или 886. ) и Ворд откроет с русскими буквами в коде, если они там есть.
I’m learning to live.
