Как сохранить файл в delphi
Обновлено: 21.11.2024
Чтобы сохранить одну или несколько строк в текстовый файл, выполните следующие действия:
- Объявите переменную типа TextFile.
- Используйте команду AssignFile, чтобы связать переменную TextFile с физическим файлом на диске.
- «Открыть» текстовый файл для записи с помощью команды Rewrite.
- Запишите строку в файл с помощью WriteLn.
Как сохранить в Delphi?
Современный способ — создать список строк и сохранить его в файл. процедура MakeAStringlistAndSaveThat; вар MyText: TStringlist; начать MyText:= TStringlist. Создайте; попробуй мой текст. Добавить('строка 1'); Мой текст.
Что такое текстовый файл в Delphi?
ФАЙЛ — это структура данных, которую можно постоянно хранить на вторичном носителе.
Как написать и сохранить текстовый файл в Python?
Сохранение текстового файла в Python
- write(): вставляет строку str1 в одну строку текстового файла. File_object.write(str1)
- writelines(): для списка строковых элементов каждая строка вставляется в текстовый файл. Используется для одновременной вставки нескольких строк. File_object.writelines(L) для L = [str1, str2, str3]
Какой правильный синтаксис для открытия файла в C++?
Синтаксис открытия файла в C++: open (имя файла, режим); Для открытия файла используются некоторые флаги режима.
Как писать в текстовый файл в Delphi?
Исходный код Delphi: запись и чтение в/из текстового файла. . Для сохранения одной или нескольких строк в текстовый файл необходимо выполнить следующие шаги: Объявить переменную типа TextFile. Используйте команду AssignFile для подключения переменной TextFile к физическому файлу на диске. «Открыть» текстовый файл на запись командой Rewrite.
Как сохранить строку в текстовый файл?
Для сохранения одной или нескольких строк в текстовый файл необходимо выполнить следующие шаги: Объявить переменную типа TextFile . Используйте команду AssignFile для подключения переменной TextFile к физическому файлу на диске. «Открыть» текстовый файл на запись командой Rewrite.
Можно ли использовать текстовый файл для записи данных?
Они предоставляют механизмы для чтения и записи числовых данных, хранящихся в виде текста (см. Запись ), но безопаснее и разумнее использовать структурированные записи при хранении чего-либо, кроме простых текстовых строк. Однако текстовые файлы допускают записи переменной длины. Загрузите этот веб-сайт в виде программы для Windows.
Спасибо. Мы получили ваш запрос и незамедлительно ответим.
Присоединяйтесь к нам!
- Общаться с другими участниками
- Уведомления об ответах
на ваши сообщения - Поиск по ключевым словам
- Доступ в один клик к вашим
любимым форумам - Автоматические подписи
на ваших сообщениях - Лучше всего то, что это бесплатно!
*Функции Tek-Tips зависят от того, получают ли участники электронную почту. Присоединяясь, вы соглашаетесь на получение электронной почты.
Правила публикации
Реклама, продажа, рекрутинг, размещение курсовых и дипломных работ запрещено.
Как сохранить данные в текстовый файл?
Как сохранить данные в текстовый файл?
Я некоторое время использовал C, пока не решил использовать Delphi.
сейчас я работаю над программой в Delphi, которая измеряет высоту, скорость, вес. и т.д. и выход в плоскость.
Я создал меню, и в разделе "Файл" у меня есть "Открыть", "Сохранить". и т. д.
я пытаюсь сохранить всю эту информацию в текстовый файл (используя "Файл" > "Сохранить") и повторно открыть его при необходимости (используя "Файл" > "Открыть").
Я знаю, как это сделать с помощью кнопки, но мне нужны дополнительные параметры, такие как местоположение файла и имя файла.
заранее спасибо.
где данные.
если в мемо или RichEdit вы используете
memo1.lines.savetofile('c:\data.txt');
в противном случае вам нужно создать файл и записать в него.
Назначить
Чтобы начать работать с текстовыми файлами из Delphi, нам нужно связать файл на диске с файловой переменной в нашей программе. Чтобы создать эту ссылку, мы должны сначала объявить переменную типа TextFile, а затем использовать процедуру AssignFile, чтобы связать файл на диске с файловой переменной.
Примечание. Если файл с именем FileName не находится в текущем каталоге, нам необходимо предоставить достаточно информации, чтобы определить путь к нему. Убедитесь, что значение текстовой переменной имеет допустимое имя файла Windows.
Чтение информации из текстового файла
Если мы хотим прочитать содержимое файла в список строк, наша задача проста. Достаточно одной строки кода.
С другой стороны, чтобы прочитать информацию из файла построчно, мы должны открыть файл для ввода с помощью процедуры Reset. Сброс открывает существующий файл с именем, присвоенным переменной TextFile. Если внешний файл с таким именем не существует, возникнет ошибка.
После сброса файла мы можем использовать ReadLn для чтения информации из файла:
var
SomeTxtFile : TextFile;
buffer : string;
begin
AssignFile(SomeTxtFile, 'c:\autoexec.bat');
Сброс(SomeTxtFile);
ReadLn(SomeTxtFile, буфер);
Memo1.Lines.Add(buffer);
CloseFile(SomeTxtFile);
конец;
Процедура под названием ReadLn считывает одну строку текста из файла, а затем переходит к следующей строке.
После добавления одной строки текста из файла в мемо-компонент SomeTxtFile необходимо закрыть. Это делается с помощью ключевого слова Close.
Примечание. Мы также можем использовать процедуру чтения для чтения информации из файла. Read работает так же, как ReadLn, за исключением того, что указатель не перемещается на следующую строку. Как показывает следующий пример, мы можем использовать несколько переменных в каждом операторе чтения:
var
SomeTxtFile : TextFile;
buf1,buf2 : string[5];
begin
AssignFile(SomeTxtFile, 'c:\autoexec.bat');
Сброс(SomeTxtFile);
ReadLn(SomeTxtFile, buf1, buf2);
ShowMessage(buf1 + ' ' +buf2);
CloseFile(SomeTxtFile);
конец;
EOF
Eof — это функция проверки EndOfFile. Мы можем использовать эту функцию, чтобы убедиться, что мы не пытаемся читать дальше конца файла. Допустим, мы хотим отобразить конкурс файла в окнах сообщений - по одной строке за раз, пока не дойдем до конца файла:
var
SomeTxtFile : TextFile;
buffer : string;
begin
AssignFile(SomeTxtFile, 'c:\autoexec.bat');
Сброс(SomeTxtFile);
хотя не EOF(SomeTxtFile) начинайте
ReadLn(SomeTxtFile, buffer);
ShowMessage(буфер);
конец;
CloseFile(SomeTxtFile);
конец;
Примечание. Лучше использовать цикл "Пока", чем цикл "До", чтобы учесть (маловероятную) вероятность того, что файл существует, но не содержит никаких данных.
Отправка информации в текстовый файл
Запись текста в файл так же проста, как чтение текста из файла. Команда WriteLn, вероятно, является наиболее распространенным способом отправки отдельных фрагментов информации в файл. Следующий код будет считывать текст из компонента Memo1 (построчно) и отправлять его в какой-нибудь вновь созданный текстовый файл.
var
SomeTxtFile : TextFile;
i: integer;
begin
AssignFile(SomeTxtFile, 'c:\MyTextFile.txt');
Переписать(SomeTxtFile);
для i := 0 to (Memo1.Lines.Count - 1) do
WriteLn(SomeTxtFile, Memo1.Lines[i]);
CloseFile(SomeTxtFile);
конец;
В зависимости от состояния файла, предоставленного процедуре Rewrite в предыдущем примере, Rewrite создает новый файл (открывает файл для вывода) с именем, присвоенным SomeTextFile. Если файл с таким именем уже существует, он удаляется и на его месте создается новый пустой файл. Если SomeTextFile уже открыт, он сначала закрывается, а затем создается заново. Текущая позиция файла устанавливается в начало пустого файла.
Примечание. Memo1.Lines.SaveToFile('c:\MyTextFile.txt') сделает то же самое.
Иногда нам просто нужно добавить некоторые текстовые данные в конец существующего файла. Если это так, мы вызовем Append, чтобы гарантировать, что файл открывается с доступом только для записи с указателем файла, расположенным в конце файла. Что-то вроде:
var
SomeTxtFile : TextFile;
begin
AssignFile(SomeTxtFile, 'c:\MyTextFile.txt');
Добавить (SomeTxtFile);
WriteLn(SomeTxtFile, 'Новая строка в моем текстовом файле');
CloseFile(SomeTxtFile);
конец;
Обратите внимание
В целом при работе с файлами всегда следует использовать обработку исключений. Ввод/вывод полон сюрпризов. Всегда используйте CloseFile в блоке finally, чтобы избежать возможности повреждения FAT пользователя. Все предыдущие примеры следует переписать следующим образом:
var
SomeTxtFile : TextFile;
buffer : string;
begin
AssignFile(SomeTxtFile, 'c:\MyTextFile.txt');
попробуйте
Reset(SomeTxtFile);
ReadLn(SomeTxtFile, буфер);
наконец
CloseFile(SomeTxtFile);
конец;
конец;
Чтобы убедиться, что данный файл существует, мы должны использовать логическую функцию FileExists. Эта функция вернет True, если файл существует, иначе Else. Синтаксис
Также ознакомьтесь с компонентом TSaveDialog, который позволяет запрашивать у пользователя каталог и имя файла. Вы можете объединить это с предложениями Аарона, заменив жестко заданные имена файлов на SaveDialog1.Filename. Примечание: вам нужно сделать вызов метода Execute TSaveDialog и убедиться, что он успешен, прежде чем использовать его свойство Filename. Справка Delphi объясняет, как использовать этот компонент в любом случае.
Клайв
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~
"Человеку свойственно ошибаться, но чтобы действительно все испортить, нужен компьютер." (Пол Эрлих)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~
Чтобы получить лучшие ответы на этом форуме, см. FAQ102-5096
Не забывайте о файлах .ini, которые могут пригодиться
для того, что вы пытаетесь сделать:
Для этого вам потребуется добавить IniFiles в раздел Uses.
Вы можете найти пункт использования в верхней части документа модуля
прямо под интерфейсом.
Как использовать файл ini:
Загрузка данных из файла ini:
процедура TForm1.Button1Click(Sender: TObject);
var myIni: TIniFile;
var Var1, Var2, Var3: строка;
begin
myIni := TIniFile.Create ('C:\somedir\myini.ini');
var1 := myIni.ReadString('SectionA','SomeIdent1','DefaultString');
var2 := myIni.ReadString('SectionA ','SomeIdent2','DefaultString');
var3 := myIni.ReadString('SectionA','SomeIdent3','DefaultString');
myIni.Free;
end;< /p>
var1, var2 и var3 будут содержать то, что загружено из ini. Там, где указано SectionA, будет создана группа переменных. SomeIdent скажет вам, что вы там сохранили. Например, в вашем случае это могут быть данные о полете, которые вы там храните (IE: высота, скорость полета и т. д. и т. д.). DefaultString — это значение, которое будет, если запись отсутствует.
Сохранение в ini-файл:
процедура TForm1.Button2Click(Sender: TObject);
var myIni: TIniFile;
begin
myIni := TIniFile.Create('C:\somedir\myini.ini');
myIni.WriteString('РазделA','SomeIdent1','Ваша переменная1');
myIni.WriteString('РазделA','SomeIdent2','Ваша переменная2');
myIni. WriteString('РазделA','SomeIdent3','Ваша переменная3');
myIni.Free;
end;
Это почти то же самое, что бит загрузки. Вам не нужно объявлять процедуру сохранения, так как это происходит автоматически. Просто убедитесь, что имена и идентификаторы разделов такие же,
как в процедуре загрузки.
Убедитесь, что вы Свободны; myIni (или как вы его называете) после его использования, чтобы не тратить память.
Помните, что файлы .INI НЕ подходят для сохранения
ОГРОМНЫХ объемов данных.
Я очень ценю вашу помощь, ребята. это как полный справочник.
Думаю, я выберу метод с файлами ini, так как мне нужно будет хранить не более 40-50 номеров данных.
Отправлено предупреждение
Спасибо, что помогаете защищать форумы Tek-Tips от неприемлемых сообщений.
Персонал Tek-Tips проверит это и примет соответствующие меры.
Ответить в этой теме
Размещение сообщений на форумах Tek-Tips доступно только для участников.
Нажмите здесь, чтобы присоединиться к Tek-Tips и пообщаться с другими участниками! Уже участник? Войти
В этом разделе объясняется, как сохранить открытый проект в каталоге, созданном для его хранения (то есть в каталоге проекта).
Примечание. Если проект был начат из шаблона проекта, в процессе выбора галереи создается каталог проекта. В противном случае Delphi по умолчанию сохраняет проекты в каталог \BIN, если вы не укажете иное.
- Чтобы сохранить все открытые файлы проекта в каталоге проекта, используйте один из следующих способов:
- Выберите проект FilelSave.
- Нажмите кнопку "Сохранить проект" на Delphi SpeedBar.
- Выберите команду «Сохранить проект» в SpeedMenu диспетчера проектов.
С этого момента процесс сохранения проектов несколько различается в зависимости от того, был ли сохранен проект.
Первое сохранение проекта
Если вы ранее не сохраняли проект, Delphi отображает диалоговое окно "Сохранить как". В этом диалоговом окне вам будет предложено ввести имя для каждого открытого файла модуля, который был создан в текущем проекте. (Вам не предлагается указать какие-либо общие файлы, которые вы могли добавить в проект. См. «Общий доступ к файлам из других проектов или каталогов» ранее в этой главе.)
После того, как вы назовете файл(ы) модуля, Delphi предложит вам назвать файл исходного кода проекта (.DPR) перед его сохранением на диск. Такой порядок обработки гарантирует, что только что указанные имена файлов модулей и форм будут правильно зарегистрированы в исходном коде файла проекта.
Если вы ранее сохранили проект, все открытые файлы, находящиеся в каталоге проекта, сохраняются на диск, если они были изменены.
Если вы открыли какие-либо новые формы или модули в проекте с момента последнего сохранения, появится диалоговое окно "Сохранить модуль как" и вам будет предложено назвать эти файлы модулей перед их сохранением.
Затем файл проекта .DPR обновляется, чтобы отразить все новые единицы и все новые общие файлы, которые вы могли указать для использования в проекте.
Именование блоков и файлов исходного кода проекта
Когда вы открываете новые модули в проекте, Delphi присваивает им имена по умолчанию, такие как UNIT1.PAS, UNIT2.PAS, UNIT3.PAS и т. д. Вы скоро столкнетесь с путаницей, если будете использовать эти имена по умолчанию при сохранении проекта. Настоятельно рекомендуется указывать осмысленное имя для каждого модуля в проекте при его сохранении.
При именовании файла с исходным кодом проекта необходимо указать имя, которое ранее не использовалось ни для одного из файлов модулей, перечисленных в разделе «uses» файла .DPR. Если вы попытаетесь присвоить проекту то же имя, что и одному из этих модулей, Delphi отобразит сообщение об ошибке, подобное следующему:
В этом случае ответьте "ОК" в окне сообщения об ошибке и укажите другое имя для файла .DPR в диалоговом окне "Сохранить как".
Как и в случае с файлами модулей, Delphi предоставляет имя по умолчанию PROJECT1.DPR для файла исходного кода модуля (.DPR). Опять же, при первом сохранении файла следует указать более осмысленное имя.
Зарко Гайич имеет опыт работы с SQL и практические знания систем баз данных, таких как MS SQL Server, Firebird, Interbase и Oracle. Он также владеет XML, DHTML и JavaScript.
Работая с различными приложениями Windows и Delphi, мы привыкли работать с одним из стандартных диалоговых окон для открытия и сохранения файла, поиска и замены текста, печати, выбора шрифтов или установка цветов.
В этой статье мы рассмотрим некоторые наиболее важные свойства и методы этих диалогов, уделив особое внимание диалоговым окнам Открыть и Сохранить.
Обычные диалоговые окна находятся на вкладке "Диалоги" палитры компонентов. Эти компоненты используют стандартные диалоговые окна Windows (расположенные в DLL в вашем каталоге \Windows\System). Для использования общего диалогового окна нам необходимо разместить на форме соответствующий компонент (компоненты). Общие компоненты диалогового окна не являются визуальными (не имеют визуального интерфейса во время разработки) и поэтому невидимы для пользователя во время выполнения.
TOpenDialog и TSaveDialog
- Свойства параметров очень важны для определения окончательного внешнего вида коробки. Например, такая строка кода, как:, сохранит уже установленные параметры и позволит пользователям выбрать более одного файла в диалоговом окне, а также создаст сообщение об ошибке, если пользователь попытается выбрать несуществующий файл.
- Свойство InitialDir используется для указания каталога, который будет использоваться в качестве начального каталога при отображении диалогового окна файла. Следующий код гарантирует, что начальный каталог диалогового окна «Открыть» является каталогом запуска приложений.
- Свойство Filter содержит список типов файлов, из которых пользователь может выбирать. Когда пользователь выбирает тип файла из списка, в диалоговом окне отображаются только файлы выбранного типа. Фильтр можно легко настроить во время разработки в диалоговом окне "Редактор фильтров".
- Чтобы создать маски файлов в программном коде, присвойте свойству Filter значение, состоящее из описания и маски, разделенных вертикальной чертой (вертикальной чертой). Вот так:
- Свойство FileName. После того как пользователь нажмет кнопку "ОК" в диалоговом окне, это свойство будет содержать полный путь и имя выбранного файла.
Выполнить
Для фактического создания и отображения общего диалогового окна нам необходимо обработать метод Execute определенного диалогового окна во время выполнения. За исключением TFindDialog и TReplaceDialog, все диалоговые окна отображаются в модальном режиме.
Все стандартные диалоговые окна позволяют определить, нажимает ли пользователь кнопку "Отмена" (или нажимает клавишу ESC). Поскольку метод Execute возвращает значение True, если пользователь нажал кнопку OK, мы должны перехватить нажатие кнопки Cancel, чтобы гарантировать, что данный код не будет выполнен.
Этот код отображает диалоговое окно "Открытие файла" и отображает выбранное имя файла после "успешного" вызова метода execute (когда пользователь нажимает кнопку "Открыть").
Примечание: Execute возвращает True, если пользователь нажал кнопку OK, дважды щелкнул имя файла (в случае диалоговых окон файлов) или нажал Enter на клавиатуре. Execute возвращает значение False, если пользователь нажал кнопку "Отмена", нажал клавишу Esc, закрыл диалоговое окно с помощью кнопки закрытия системы или комбинации клавиш Alt-F4.
Из кода
Чтобы работать с диалоговым окном Открыть (или любым другим) во время выполнения без размещения компонента OpenDialog на форме, мы можем использовать следующий код:
Примечание. Перед вызовом Execute мы можем (должны) установить любые свойства компонента OpenDialog.
Мой Блокнот
Наконец-то пришло время заняться настоящим программированием. Вся идея этой статьи (и некоторых других, которые будут опубликованы) состоит в том, чтобы создать простое приложение MyNotepad — отдельное приложение для Windows, похожее на приложение «Блокнот».
В этой статье нам представлены диалоговые окна «Открыть» и «Сохранить», так что давайте посмотрим на них в действии.
Этапы создания пользовательского интерфейса MyNotepad:
. Запустите Delphi и выберите Файл-Новое приложение.
. Поместите на форму один Memo, OpenDialog, SaveDialog и две кнопки Button.
. Переименуйте Button1 в btnOpen, Button2 в btnSave.
Кодирование
<р>1. С помощью инспектора объектов назначьте событию FormCreate следующий код:Этот код устанавливает некоторые свойства диалогового окна "Открыть", как обсуждалось в начале статьи.
<р>2. Добавьте этот код для события Onclick кнопок btnOpen и btnSave:Запустите свой проект. Вы не можете в это поверить; файлы открываются и сохраняются так же, как в «настоящем» блокноте.
Учитесь в прямом эфире,
не выходя из дома
Начните немедленно!
+1 (678) 921-0644
Как сохранить размер и положение окна в Delphi
Иногда мне задают вопрос: как сохранить положение и размер данного окна в зависимости от предпочтений пользователя, а затем использовать сохраненные настройки при следующем открытии окна?
- Использовать INI-файл — обычно один пользователь на компьютер
- Использовать реестр Windows — может быть для одного пользователя или для нескольких пользователей с разными учетными записями, использующих один и тот же компьютер.
- Использовать таблицу базы данных — среда клиент/сервер, где один пользователь может использовать любой компьютер в сети
Я расскажу только о первом способе — использовании INI-файла для сохранения настроек. Концепция одинакова для всех трех:
Когда окно открыто, проверьте, следует ли загружать какие-либо сохраненные настройки и были ли они сохранены. Если это так, используйте настройки для отображения окна. В противном случае загрузите настройки окна по умолчанию (настройки дизайна). Прежде чем закрыть окно, проверьте, нужно ли сохранять какие-либо настройки. Если это так, сохраните настройки и выйдите. Вы можете настроить и настроить код в соответствии со своими требованиями и предпочтениями, а также изменить его в соответствии с выбранной вами методологией хранения.
Для этого примера мы будем использовать главную форму (Окно), поместим на нее панель и флажок на панели:
Чтобы панель всегда находилась в центре окна, добавьте следующий код в событие OnResize формы:
В частные объявления раздела интерфейса добавьте:
Строка выше объявляет myINIFile как INI-файл и делает его доступным для всех процедур в этом модуле.
Добавьте "INIFiles" в раздел USES в разделе INTERFACE.
Ниже приведен код с комментариями для события OnCreate формы:
процедура TfrmMain.FormCreate(Sender: TObject);
var
myFileName : String; // Это будет содержать полный путь и имя нашего INI-файла для удобства поиска
SaveSettings : Integer; // Если значение этой переменной равно '1', настройки сохраняются
begin
// В следующей строке задается полный путь и имя нашего INI-файла на основе расположения исполняемого файла.
myFileName := ExtractFilePath( Application.ExeName ) + 'FormSettings.ini';
myINIFile := TINIFile.Create(myFileName); // Инициализирует файл INI и делает его доступным для использования
// Мы будем использовать блок try-finally-end для обеспечения правильной обработки ресурсов
try
// Функция ReadInteger используется для чтения целого числа из INI-файла. Он принимает три
// параметра. Первый — это раздел INI-файла. Второй — это имя ключа
//, из которого извлекается значение. Третий параметр — это целочисленное значение, которое должно быть
// возвращено, если: (1) Секция не существует; (2) Ключ не существует; (3) Ключ не
// имеет присвоенное значение.
Ниже приведен код с комментариями для события OnDestroy формы:
процедура TfrmMain.FormDestroy(Sender: TObject);
var
myFileName : String; // Это будет содержать полный путь и имя нашего INI-файла для удобства поиска
begin
// Следующая строка устанавливает полный путь и имя нашего INI-файла на основе местоположения исполняемого файла.
myFileName := ExtractFilePath( Application.ExeName ) + 'FormSettings.ini';
myINIFile := TINIFile.Create(myFileName); // Инициализирует файл INI и делает его доступным для использования
// Мы будем использовать блок try-finally-end для обеспечения правильной обработки ресурсов
try
// Функция WriteInteger используется для записи целочисленного значения в ключ в INI-файле . Он принимает три
// параметра. Первый — это раздел INI-файла. Второй — имя ключа
//, в который записывается значение. Третий параметр — это фактическое целочисленное значение.
Читайте также: