Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.02.2010, 18:00   #1
delphinewerklin
 
Регистрация: 21.01.2010
Сообщений: 9
По умолчанию Загрузка - Выгрузка структуры из dat файла

Пишу программу, в которой необходимо при нажатии кнопки нужно будет сохранять информацию из эдитов в структуру, а структуру в dat - файл. А при открытии окна - загружать в структуру из dat - файла данные, а затем выводить в поля ввода. Чтобы было понятнее - это окно настроек одного проекта. Только проблема: ошибок в коде нет, но поля ввода либо вообще ничего не отображают при загрузке, либо всякую дрянь. Писал программму на основе главы из "Библии Дельфи" об использовании структур и записи в файл.

Код:
 unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  People = record
   FirstName: string;
   SecondName: string;
   age: integer;
   end;


  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;


  var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
 pep: People;
 fs: TFileStream;
begin
 
 pep.FirstName:=Edit1.Text;
 pep.SecondName:=Edit2.Text;
 pep.age:=StrToInt(Edit3.Text);
 
 fs:=TFileStream.Create('C:\sunny.dat', fmCreate);
 fs.Write(pep, sizeof(pep));
 fs.Free;

end;

procedure TForm1.FormShow(Sender: TObject);
var
 pep: People;
 fs: TFileStream;
begin
 
 if FileExists('C:\sunny.dat') then
 begin 
  fs:=TFileStream.Create('C:\sunny.dat', fmOpenRead);
 fs.Read(pep, sizeof(pep));
 fs.Free;
 
 Edit1.Text:=pep.FirstName;
 Edit2.Text:=pep.SecondName;
 Edit3.Text:=IntToStr(pep.age);
 end;
end;

end.
У нас принято оформлять код специальным тэгом - при помощи кнопочки "#".
Только...
И не значком #.
И не РНР-кодом.
И не значком цитаты.
И не собственными "ручками".
Рекомендую. Помимо общих правил форума есть и дополнения к ним в каждом разделе...
Модератор

Последний раз редактировалось delphinewerklin; 07.02.2010 в 19:30.
delphinewerklin вне форума Ответить с цитированием
Старый 07.02.2010, 18:07   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
ошибок в коде нет, но поля ввода либо вообще ничего не отображают при загрузке, либо всякую дрянь
Ну, ежели
Код:
else
  fs:=TFileStream.Create('C:\sunny.dat', fmCreate);
 fs.Read(pep, sizeof(pep));
то там и будет непонятно что...
mihali4 вне форума Ответить с цитированием
Старый 07.02.2010, 19:31   #3
delphinewerklin
 
Регистрация: 21.01.2010
Сообщений: 9
По умолчанию

Исправил, но не заработало.
delphinewerklin вне форума Ответить с цитированием
Старый 07.02.2010, 19:50   #4
SnX
Форумчанин
 
Регистрация: 30.10.2009
Сообщений: 114
По умолчанию

Нужно определять строки фиксированной длинны.
Код:
type
  People =packed record
   FirstName: string[50];
   SecondName: string[50];
   age: integer;
   end;
SnX вне форума Ответить с цитированием
Старый 07.02.2010, 20:00   #5
delphinewerklin
 
Регистрация: 21.01.2010
Сообщений: 9
По умолчанию

Спасибо большое, помогло.
delphinewerklin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выгрузка doc файла в комбокс и листбокс Артур Иваныч Microsoft Office Excel 6 27.11.2009 19:58
BlockRead -чтение dat файла element Общие вопросы Delphi 2 15.06.2009 14:21
Проблема такова: язык:Delphi7; сохранения файла; загрузка файла в String Grid lightdevil Общие вопросы Delphi 3 06.03.2009 23:10
Чтение структуры файла SDK Помощь студентам 4 23.01.2008 19:30
загрузка и выгрузка памяти на языке СИ Anil Общие вопросы C/C++ 5 19.12.2007 18:25