Чтение онлайн

на главную

Жанры

Советы по Delphi. Версия 1.4.3 от 1.1.2001

Озеров Валентин

Шрифт:

 TDataTags = Array [0..NumOfTags-1] of TDataTag;

 TDataRec = packed Record

tagfield: TDataTag;

case integer of

0: ( поля для тэга TFH );

1: ( поля для тэга TBH );

2: …

 end;

 TMultiRec = packed Record

Case Boolean of

false: (строка: Array [0..1024] of Char);

{
должно установать строку максимально возможной длины }

true : ( data: TDataRec );

 End;

Const DataTags: TDataTags = ('TFH', 'TBH', …);

var rec: TMultirec;

ReadLn(datafile, rec.line);

Case IndexFromDataTag(rec.data.tagfield) Of

0: …

1: …

IndexFromDataTag должен искать передаваемый тэг поля в массиве DataTags. Определите все поля в TDataRec как Array [1..someUpperBound] of Char.

– Peter Below

Передача массива записей символов в Memo

Delphi 1

Тема: Передача массива записей символов в Memo.

Обработка больших строк в 16-битной версии Delphi задача далеко непростая. Особенно когда строки являются частью структуры записи и вы хотите передать их в TMemo. В данном совете показано как создать структуру записи размером 1000 символов, прочесть в нее содержимое Memo и затем записать ее обратно в Memo. Основной метод, который мы здесь используем — метод Memo GetTextBuf. Используемая структура записи представляет собой простую строку и массив из 1000 символов, но структура могла бы быть сложнее.

unit URcrdIO;

interface

uses

 SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,Forms, Dialogs, StdCtrls,dbtables;

type

 TForm1 = class(TForm)

Button1: TButton;

Memo1: TMemo;

Button2: TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private { Private declarations }

public { Public declarations }

 end;

type

 TMyRec = record

MyArray: array [1..1000] of char;

mystr: string;

 end;

var

 Form1: TForm1;

 MyRec : TMyRec;

 mylist : TStringlist;

 PMyChar : PChar;

 myfile : file;

 mb : TStream;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);

begin

 assignfile(myfile, 'c:\testblob.txt');

 rewrite(myfile,1);

 fillchar(MyRec.MyArray,sizeof(MyRec.MyArray),#0);

 pmychar:=@MyRec.MyArray;

 StrPCopy(pmychar,memo1.text);

 Blockwrite(MyFile,MyRec,SizeOf(MyRec));

 closefile(MyFile);

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

 assignfile(myfile, 'c:\testblob.txt');

 reset(myfile,1);

 fillchar(MyRec.MyArray, sizeof(MyRec.MyArray),#0);

 Blockread(MyFile, MyRec, SizeOf(MyRec));

 pmychar:=@MyRec.MyArray;

 Memo1.SetTextBuf(pmychar);

end;

end.

Освобождение

записей

Delphi 1

Для начала необходимо привести объект к нужному типу, например, так:

var

i: integer;

begin

 …

for

 i := 0 to MyList.Count - 1 do dispose(PMyRecord(MyList[i]));

 MyList.Free;

end;

Поделиться:
Популярные книги

Изгой. Трилогия

Михайлов Дем Алексеевич
Изгой
Фантастика:
фэнтези
8.45
рейтинг книги
Изгой. Трилогия

Старатель 2

Лей Влад
2. Старатели
Фантастика:
боевая фантастика
космическая фантастика
5.00
рейтинг книги
Старатель 2

Купеческая дочь замуж не желает

Шах Ольга
Фантастика:
фэнтези
6.89
рейтинг книги
Купеческая дочь замуж не желает

Кодекс Охотника. Книга IX

Винокуров Юрий
9. Кодекс Охотника
Фантастика:
боевая фантастика
городское фэнтези
попаданцы
5.00
рейтинг книги
Кодекс Охотника. Книга IX

Школа Семи Камней

Жгулёв Пётр Николаевич
10. Real-Rpg
Фантастика:
фэнтези
рпг
5.00
рейтинг книги
Школа Семи Камней

Тайны ордена

Каменистый Артем
6. Девятый
Фантастика:
боевая фантастика
попаданцы
7.48
рейтинг книги
Тайны ордена

Убивать чтобы жить 9

Бор Жорж
9. УЧЖ
Фантастика:
героическая фантастика
боевая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 9

Мимик нового Мира 11

Северный Лис
10. Мимик!
Фантастика:
юмористическое фэнтези
постапокалипсис
рпг
5.00
рейтинг книги
Мимик нового Мира 11

Пришествие бога смерти. Том 5

Дорничев Дмитрий
5. Ленивое божество
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Пришествие бога смерти. Том 5

Аномальный наследник. Том 3

Тарс Элиан
2. Аномальный наследник
Фантастика:
фэнтези
7.74
рейтинг книги
Аномальный наследник. Том 3

Опер. Девочка на спор

Бигси Анна
5. Опасная работа
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Опер. Девочка на спор

Имя нам Легион. Том 4

Дорничев Дмитрий
4. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 4

Приручитель женщин-монстров. Том 8

Дорничев Дмитрий
8. Покемоны? Какие покемоны?
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Приручитель женщин-монстров. Том 8

Личник

Валериев Игорь
3. Ермак
Фантастика:
альтернативная история
6.33
рейтинг книги
Личник