Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

Курс видеоуроков КРЭКЕРСТВО + ПРОГРАММИРОВАНИЕ 2017
(актуальность: май 2017)
Свежие инструменты, новые видеоуроки!

  • 400+ видеоуроков
  • 800 инструментов
  • 100+ свежих книг и статей

УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

БОЛЬШОЙ FAQ ПО DELPHI



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

Юзер заходит в магазин:
- А какой компьютер лучше? Windows или Pentium.

Обработка больших строк в 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.
 




<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ



Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS