Логин: Пароль:    Регистрация Всеми возможностями сайта можно пользоваться
только после авторизации.
   Забыли пароль?

Поиск
L



Статистика
u
Пользователи онлайн: нет
Гостей онлайн: 7
Всего онлайн: 7
Зарегистрировано юзеров: 6383
Комментариев на сайте: 646
Новый юзер: YuriyRirty



Последние комментарии
c
Aqel прокомментировал "Урок 71 - Работа с сжатыми файлами":
uses ...sevenzip, ... function ProgressCallback(sender: Pointer; total: boolean; value: int64): HRESULT; stdcall; begin if total then Form1.sprgrsbr1.Max:= value else Form1.sprgrsbr1.Position:= value; Result:= S_OK; end; function Decompress(FileName, DestDir, ArcFname: String; ArcDir: Boolean ): Boolean; var i: Integer; ItP: string; items: array[1..11] of Cardinal; sprgrsbr1: TsProgressBar; begin Result:= False; Application.ProcessMessages; try with CreateInArchive(CLSID_CFormat7z) do begin OpenFile(FileName); SetProgressCallback(sprgrsbr1, ProgressCallback); for i:= 1 to NumberOfItems - 1 do if not ItemIsFolder[i] then //ExtractItem(items[i], Steam, False); - как ей пользоваться в душе не понимаю... ExtractTo(DestDir); end; finally Result:= True; end; end;
Aqel прокомментировал "Урок 71 - Работа с сжатыми файлами":
GZip псевдоархив, на мой вопрос тоже не отвечают, как распаковать отдельные файлы/папки...



Мы в соцсетях
c
Delphi
Урок 49 - Структурные типы данных, часть (2/2)

   В этом уроке мы продолжаем изучать структуры и рассмотрим Множества и Записи.
  Записи очень важный и удобный инструмент. Даже не применяя специальные технологии, с его помощью можно создавать собственные базы данных. Записи - это структура данных, каждый элемент которой имеет собственное имя и тип данных. Элемент записи иначе называют поле. Описание записи имеет вид:

type 
	имя_типа_записи = record
		название_поля : тип_поля ;
		. . .
		название_поля : тип_поля ;
	end;
Названия полей, имеющих одинаковый тип, можно, как и в случае описания переменных, указывать в одну строку через запятую. Для обращения к полю записи сначала указывают имя записи, затем точку, затем имя поля. Например, данные о персонале предприятия могут быть организованы таким типом записи:

type 
	TPers = record
		Fam, Name, Par : String;
		Year : Integer;
		Dep : String;
		end;
	var Pers : TPers;
		begin
		Pers.Fam:='Иванов';
		Pers.Name:='Иван';
		Pers.Par:='Иванович';
		Pers.Year:=1966;
		Pers.Dep:='Цех №1';
end;
Теперь осталось записать эти данные в файл, предварительно объявив и его тип как TPers, и база данных готова. С файлом в Delphi также ассоциируется переменная, называемая файловой переменной, которая описывается так:
	VFile : file of тип_файла;
В качестве типа может использоваться любой ограниченный тип Delphi. При этом не допускается тип String, так как он допускает переменный размер до 2 ГБайт. Его необходимо ограничивать: String[N], где N - количество символов. Тип TPers из предыдущего примера должен быть описан, например, так:
type 
	TPers = record
		Fam, Name, Par : String[20];
		Year : Integer;
		Dep : String[10];
	end;
Теперь переменная такого типа занимает строго определённое место в памяти, и может быть записана в файл.

  Множество - это группа элементов, объединённая под одним именем, и с которой можно сравнивать другие величины, чтобы определить, принадлежат ли они этому множеству. Количество элементов в одном множестве не может превышать 256. Множество описывается так:
type
	имя_множества = set of диапазон_значений_множества ;
В качестве диапазона может указываться любой тип, количество элементов в котором не больше 256. Например:
type 
	TMySet = set of  0 .. 255;
type
	TMySet = set of Byte;
Конкретные значения множества задаются в программе с помощью перечисления элементов, заключённых в квадратные скобки. Допускается использовать и диапазоны:
var
	MySet : TMySet;
begin
	MySet:=[1, 3 .. 7, 9];
end;
Чтобы проверить, является ли некое значение элементом множества, применяется оператор in в сочетании с условным оператором:
var 
	Key : Char;
	Str: String;
begin
	if Key in [?0? .. ?9?, ?+?, ?-?] then Str:=?Math?;
end;
   Чтобы добавить элемент во множество, используется операция сложения, удалить - вычитания:

var Digit: set of Char=[?1?..?9?];
var Math: Set of Char;
begin
	Math:=Digit+[?+?, ?-?, DecimalSeparator*];
end;
*Примечание: DecimalSeparator - встроенная в Delphi константа типа Char, имеющая значение символа-разделителя целой и дробной частей, который может быть равен точке ('.') либо запятой (','), в зависимости от текущих настроек Windows.

Удачи!
Встретимся в следующем уроке!


Источник: www.thedelphi.ru
Автор: Савельев Александр
Опубликовано: 9 Июня 2013
Просмотров: 5882

Урок 48 - Структурные типы данных, часть (1/2) Урок 50 - Динамическое создание компонентов, часть (1/2)

Зарегистрируйтесь или авторизуйтесь, чтобы добавлять комментарии.



аватар Добавил(а): Xameleon [Новичок] Дата: 2014-04-27