Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001

Здесь есть возможность читать онлайн «Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Советы по Delphi. Версия 1.4.3 от 1.1.2001: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Советы по Delphi. Версия 1.4.3 от 1.1.2001»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

…начиная с 1001. Смотрите другие файлы…

Советы по Delphi. Версия 1.4.3 от 1.1.2001 — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Советы по Delphi. Версия 1.4.3 от 1.1.2001», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

MFileOpen.Filename := GetValue;

MFileOpen.Filter := 'Правильный тип файлов|*.*'; (* Поместите здесь ваш собственный фильтр...*)

MFileOpen.Options := MFileOpen.Options + [ofPathMustExist,ofFileMustExist];

try

ifMFileOpen.Execute thenSetValue(MFileOpen.Filename);

finally

MFileOpen.Free;

end;

end;

Записи

Пример переменной записи

В Delphi 2.0 я пытаюсь прочесть текстовый файл и получаю проблему. Текстовый файл, который я хочу прочесть, имеет записи фиксированной длины, но в самих записях могут располагаться различные типы с различной длиной, и оканчиваться в различных позициях, в зависимости от типа.

Файл выглядит примерно так:

TFH.......

TBH.......

TAB........

TAA........

Вы можете поймать больше одного зайца в случае объявления переменной записи, но если сделаете это правильно.

Type

TDataTag = Array[1..3] ofChar;

TDataTags = Array[0..NumOfTags-1] ofTDataTag;

TDataRec = packed Record

tagfield: TDataTag;

caseinteger of

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

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

2: …

end;

TMultiRec = packed Record

CaseBoolean of

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

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

true : ( data: TDataRec );

End;

ConstDataTags: TDataTags = ('TFH', 'TBH', …);

varrec: TMultirec;

ReadLn(datafile, rec.line);

CaseIndexFromDataTag(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 символов, но структура могла бы быть сложнее.

unitURcrdIO;

interface

uses

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

type

TForm1 = class(TForm)

Button1: TButton;

Memo1: TMemo;

Button2: TButton;

procedureButton1Click(Sender: TObject);

procedureButton2Click(Sender: TObject);

private{ Private declarations }

public{ Public declarations }

end;

type

TMyRec = record

MyArray: array[1..1000] ofchar;

mystr: string;

end;

var

Form1: TForm1;

MyRec : TMyRec;

mylist : TStringlist;

PMyChar : PChar;

myfile : file;

mb : TStream;

implementation

{$R *.DFM}

procedureTForm1.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;

procedureTForm1.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 toMyList.Count - 1 dodispose(PMyRecord(MyList[i]));

MyList.Free;

end;

или

begin

for i := 0 toMyList.Count - 1 dodispose(PMyRecord(MyList.items[i]));

MyList.Free;

end;

Items — свойство по умолчанию, поэтому вам нет необходимости определять это, хотя обратное не помешает.

Теперь можно заняться созданием работоспособной и полезной функцией. В форме:

varp : ^mystruct;

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Советы по Delphi. Версия 1.4.3 от 1.1.2001»

Представляем Вашему вниманию похожие книги на «Советы по Delphi. Версия 1.4.3 от 1.1.2001» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Советы по Delphi. Версия 1.4.3 от 1.1.2001»

Обсуждение, отзывы о книге «Советы по Delphi. Версия 1.4.3 от 1.1.2001» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x