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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.11.2008, 02:08   #1
mar4elo
Форумчанин
 
Регистрация: 17.04.2008
Сообщений: 146
По умолчанию Структуры,Записи в делфи ПРОБЛЕМА

Код:
type
 str=record
 f:integer;
 s:string;
end;
var
mas[0..100] of str;
.......

Вопрос: как массив со структурой записать в файл, а потом обратно прочитать из файла в массив

Последний раз редактировалось rpy3uH; 01.12.2008 в 11:03.
mar4elo вне форума Ответить с цитированием
Старый 30.11.2008, 02:34   #2
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Подразумивается:
Код:
type
  str = packed record // я всегда использую packed
    f: Integer;
    s: String;
  end;
var
  F: File;
  mas: array[0..100] of str;
...
  Assigned(F, 'someone.txt');
  Reset(F, 1);
Пример записи елемента массива:
Код:
BlockWrite(F, mas[Index].f, SizeOf(mas[Index].f));
BlockWrite(F, Pointer(mas[Index].s)^, Length(mas[Index].s));
думаю в цикл for Low to High сами подставите и замените Index на циклическую переменную ?
BOBAH13 вне форума Ответить с цитированием
Старый 30.11.2008, 14:07   #3
Роман Радер
Форумчанин
 
Аватар для Роман Радер
 
Регистрация: 16.12.2006
Сообщений: 859
По умолчанию

помоему проще вместо BlockWrite делать так:
Код:
var f:File of str;
mas:array[0..99] of str;
...
чтение
assign(f,'file.ext'); //!!! не "Assigned" a "Assign" assigned проверяет на выделенную память.
reset(f);
for i:=0 to 99 do
  Read(f,mas[i]);
close(f)
...
запись
assign(f,'file.ext');
rewrite(f);
for i:=0 to 99 do
  Write(f,mas[i]);
close(f);
Роман Радер вне форума Ответить с цитированием
Старый 30.11.2008, 15:42   #4
mar4elo
Форумчанин
 
Регистрация: 17.04.2008
Сообщений: 146
По умолчанию

var f:File of str;
В этой строчку выдаёт ошибку!!!

[DCC Error] Unit1.pas(36): E2155 Type 'Str' needs finalization - not allowed in file type

Код:
unit Unit1;

interface

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

type
  Zapis = record
    UIN : integer;
    STR : String;
  end;
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;


var
  Form1 : TForm1;
  Mas : Array [0..10] of Zapis;
  Fil: File OF Zapis ;//Выдает сдесь ошибку

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
Assign(Fil,'File.txt'); и сдесь
end;
end.

Последний раз редактировалось rpy3uH; 01.12.2008 в 11:03.
mar4elo вне форума Ответить с цитированием
Старый 01.12.2008, 01:36   #5
Баламут
Баламучу слегка...
Участник клуба
 
Аватар для Баламут
 
Регистрация: 01.11.2006
Сообщений: 1,585
По умолчанию

И правильно выдает ошибку. Ограничь длину STR и будет тебе счастье. И настоятельно рекомендую почитать о типах данных в Делфи, в частности о string. Довольно увлекательно
Баламут вне форума Ответить с цитированием
Старый 01.12.2008, 09:01   #6
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Цитата:
Сообщение от mar4elo Посмотреть сообщение
[DCC Error] Unit1.pas(36): E2155 Type 'Str' needs finalization - not allowed in file type
p.s. как обычно решение в первом же ответе... так нее ))) давайте сведем программирование в одну строку!
BOBAH13 вне форума Ответить с цитированием
Старый 01.12.2008, 10:43   #7
mar4elo
Форумчанин
 
Регистрация: 17.04.2008
Сообщений: 146
По умолчанию

ТЕМА ЗАКРЫТА
mar4elo вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема с запросом и делфи student90 БД в Delphi 9 02.11.2008 19:29
Проблема с задачей на одномерный массив в Делфи 7 sting Помощь студентам 34 22.09.2008 15:36
Проблема с делфи и plug-in Sichersa Помощь студентам 1 24.07.2008 20:55
Проблема с sql в делфи spiteful41 Помощь студентам 4 27.05.2008 01:23
Проблема структуры else в Delphi jora-objora Помощь студентам 3 03.02.2008 18:10