Създайте база данни с помощта на файла на Delphi от въведени файлове

click fraud protection

Просто казано файл е двоична последователност от някакъв тип. в Delphi, има три класа на досие: въведени, текстови и нетипизирани. Въведените файлове са файлове, които съдържат данни от определен тип, като Double, Integer или предварително определен потребителски тип запис. Текстовите файлове съдържат четими ASCII символи. Нетипните файлове се използват, когато искаме да наложим възможно най-малка структура на файл.

Въведени файлове

Докато текстовите файлове се състоят от линии, завършени с CR / LF (#13#10) комбинация, типизираните файлове се състоят от данни, взети от определен тип структура от данни.

Например, следната декларация създава тип запис, наречен TMember и масив от променливи на запис на TMember.

Тип

 TMember = рекорд

 Име: низ[50];

електронна поща:
низ[30];

Мнения: LongInt;
край;

Var Членове: масив[1..50] на TMember; 

Преди да можем да запишем информацията на диска, трябва да декларираме променлива от тип на файла. Следващият ред код декларира променлива на F файл.

Var F: файл на TMember; 

instagram viewer

Забележка: За да създадем въведен файл в Delphi, използваме следното синтаксис:

Var SomeTypedFile: файл на SomeType

Основният тип (SomeType) за даден файл може да бъде скаларен тип (като Double), тип масив или тип запис. Това не трябва да бъде дълъг низ, динамичен масив, клас, обект или указател.

За да започнем да работим с файлове от Delphi, трябва да свържем файл на диск с файлова променлива в нашата програма. За да създадем тази връзка, трябва да използваме AssignFile процедура за свързване на файл на диск с файлова променлива.

 AssignFile (F, 'Members.dat') 

След като се установи връзката с външен файл, файловата променлива F трябва да бъде „отворена“, за да я подготви за четене и писане. Извикваме процедура за нулиране за отваряне на съществуващ файл или пренаписване, за да създадете нов файл. Когато една програма завърши обработката на файл, файлът трябва да бъде затворен чрез процедурата за затваряне. След затваряне на файл, свързаният му външен файл се актуализира. След това файловата променлива може да бъде свързана с друг външен файл.

По принцип винаги трябва да използваме обработка на изключения; могат да възникнат много грешки при работа с файлове. Например: ако извикаме CloseFile за файл, който вече е затворен, Delphi съобщава за I / O грешка. От друга страна, ако се опитаме да затворим файл, но все още не сме нарекли AssignFile, резултатите са непредсказуеми.

Пишете във файл

Да предположим, че сме попълнили масив от членове на Delphi с техните имена, имейли и брой публикации и искаме да съхраним тази информация във файл на диска. Следният код ще свърши работа:

Var

 F: файл на TMember;

i: цяло число;
започвам

 AssignFile (F, 'members.dat');

 Пренапишете (F);

опитвам

за j: = 1 да се 50 правя

 Пишете (F, членове [j]);

накрая

 CloseFile (F);

край;край; 

Прочетете от файл

За да извлечем цялата информация от файла 'members.dat', ще използваме следното код:

Var

 Член: TMember

 F: файл на TMember;започвам

 AssignFile (F, 'members.dat');

 Нулиране (F);

опитвам

докато не Eof (F) да започнете

 Прочетете (F, член);

{DoSomethingWithMember;}

край;

накрая

 CloseFile (F);

край;край; 

Забележка: Eof е функцията за проверка на EndOfFile. Използваме тази функция, за да сме сигурни, че не се опитваме да четем отвъд края на файла (отвъд последния запаметен запис).

Търсене и позициониране

Достъп до файлове обикновено се осъществява последователно. Когато даден файл се чете по стандартната процедура Четене или запис, като се използва стандартната процедура Write, текущата позиция на файла се премества в следващия числово подреден файлов компонент (следващ запис). Въведените файлове също могат да бъдат достъпни на случаен принцип чрез стандартната процедура Seek, която премества текущата позиция на файл до определен компонент. Най- FilePos и Размер на файла функции могат да се използват за определяне на текущата позиция на файла и текущия размер на файла.

{върнете се в началото - първият запис}

 Търсете (F, 0);


{отидете на 5-ти запис}

 Търсете (F, 5);


{Направо до края - "след" последния запис}

 Търсете (F, размер на файла (F)); 

Промяна и актуализация

Току-що научихте как да пишете и четете целия масив от членове, но какво, ако всичко, което искате да направите, е да потърсите 10-ия член и да промените електронната поща? Следващата процедура прави точно това:

процедура Смяна на имейл(конст RecN: цяло число; конст Нов имейл: низ) ;Var DummyMember: TMember;започвам

{присвояване, отваряне, блок за обработка на изключения}

 Търсете (F, RecN);

 Прочетете (F, DummyMember);

 DummyMember. Имейл: = NewEMail;

{четене преминава към следващия запис, ние трябва да

върнете се към оригиналния запис, след което напишете}
 Търсете (F, RecN);

 Пишете (F, DummyMember);

{затворен файл}край;

Изпълнение на задачата

Това е всичко - сега имате всичко необходимо, за да изпълните своята задача. Можете да запишете информация на членовете на диска, можете да го прочетете обратно и дори можете да промените някои от данните (имейл, например) в „средата“ на файла.

Важното е, че този файл не е ASCII файл, така изглежда Notepad (само един запис):

 .Delphi Guide g Ò5 · ¿ì. 5.. B V.Lƒ, „¨[email protected]Ï.. ç.ç.ï.. 

instagram story viewer