Креирајте базу података помоћу Делпхи-ове датотеке откуцаних датотека

click fraud protection

Једноставно речено, датотека је бинарни низ неке врсте. Ин Делпхи, постоје три разреда датотека: куцано, текстно и нетипично. Уписане датотеке су датотеке које садрже податке одређеног типа, као што су Доубле, Интегер или претходно дефинисани прилагођени тип Рецорд-а. Текстуалне датотеке садрже читљиве АСЦИИ знакове. Нетипичне датотеке се користе када желимо датотеци наметнути најмање могућу структуру.

Уписане датотеке

Док се текстуалне датотеке састоје од линија закључених са ЦР / ЛФ (#13#10) комбинација, типкане датотеке састоје се од података преузетих из одређене врсте података.

На пример, следећа декларација ствара врсту записа звану ТМембер и низ променљивих записа ТМембер.

тип

 ТМембер = запис

 Име: низ[50];

е-пошта:
низ[30];

Поруке: ЛонгИнт;
крај;

вар Чланови: низ[1..50] од ТМембер; 

Пре него што можемо да упишемо информације на диск, морамо да прогласимо променљиву врсту датотеке. Следећи ред кода декларише променљиву Ф датотеку.

вар Ф: филе оф ТМембер; 

Напомена: Да креирамо куцану датотеку у Делфи, користимо следеће синтакса:

instagram viewer

вар СомеТипедФиле: филе оф СомеТипе

Основни тип (СомеТипе) за датотеку може бити скаларни тип (као што је Доубле), тип матрице или тип записа. То не би требало да буде дуги низ, динамички низ, класа, објект или поинтер.

Да бисмо започели рад са датотекама из Делпхија, морамо повезати датотеку на диску са променљивом датотеком у нашем програму. Да бисмо створили ову везу, морамо да користимо АссигнФиле поступак повезивања датотеке на диску са променљивом датотеком.

 АссигнФиле (Ф, 'Мемберс.дат') 

Једном када се успостави повезаност с екстерном датотеком, варијаблу датотеке Ф мора се отворити како би се припремила за читање и писање. Позивамо поступак Ресет да отворимо постојећу датотеку или Реврите да креирамо нову датотеку. Када програм доврши обраду датотеке, датотека се мора затворити помоћу поступка ЦлосеФиле. Када се датотека затвори, придружена спољна датотека се ажурира. Променљива датотека се тада може повезати са другом спољном датотеком.

Уопштено, увек би требало да користимо Изузетак руковање; могу се појавити многе грешке током рада са датотекама. На пример: ако назовемо ЦлосеФиле за датотеку која је већ затворена, Делпхи пријављује грешку у И / О. С друге стране, ако покушамо да затворимо датотеку, али још увек нисмо позвали АссигнФиле, резултати су непредвидљиви.

Пишите у фајл

Претпоставимо да смо попунили низ чланова Делпхија са њиховим именима, е-маиловима и бројем постова и желимо да те податке спремимо у датотеку на диску. Следећи део кода ће успети:

вар

 Ф: филе оф ТМембер;

и: цели број;
започети

 АссигнФиле (Ф, 'мемберс.дат');

 Преписати (Ф);

покушати

за ј: = 1 до 50 урадити

 Пишите (Ф, Чланови [ј]);

напокон

 ЦлосеФиле (Ф);

крај;крај; 

Читање из датотеке

За преузимање свих информација из датотеке 'мемберс.дат' користили бисмо следеће код:

вар

 Члан: ТМембер

 Ф: филе оф ТМембер;започети

 АссигнФиле (Ф, 'мемберс.дат');

 Ресет (Ф);

покушати

док не Еоф (Ф) почињу

 Читање (Ф, члан);

{ДоСометхингВитхМембер;}

крај;

напокон

 ЦлосеФиле (Ф);

крај;крај; 

Белешка: Еоф је функција провере ЕндОфФиле. Ову функцију користимо да бисмо били сигурни да не покушавамо да читамо даље од краја датотеке (изван последњег сачуваног записа).

Тражење и позиционирање

Датотекама се обично приступа секвенцијално. Када се датотека чита помоћу стандардне процедуре Читање или писање помоћу стандардне процедуре Врите, тренутна позиција датотеке прелази на следећу нумерички уређену компоненту датотеке (следећи запис). Утипканим датотекама се такође може насумично приступати стандардна процедура Сеек, која тренутну позицију датотеке премешта у задату компоненту. Тхе ФилеПос и Величина фајла функције се могу користити за одређивање тренутног положаја датотеке и тренутне величине датотеке.

{Врати се на почетак - први запис}

 Тражи (Ф, 0);


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

 Тражи (Ф, 5);


{Скочи до краја - "после" последњег записа}

 Тражи (Ф, Величина датотеке (Ф)); 

Промена и ажурирање

Управо сте научили како писати и читати читав низ чланова, али шта ако све што желите јесте да потражите десетог члана и промените е-маил? Следећи поступак чини управо то:

процедура Промена Е-маил(цонст РецН: цели број; цонст Нова е-маил: низ) ;вар ДуммиМембер: ТМембер;започети

{доделити, отворити, блок за руковање изузетком}

 Тражи (Ф, РецН);

 Прочитајте (Ф, ДуммиМембер);

 ДуммиМембер. Емаил: = НевЕМаил;

{читање прелази на следећи запис, морамо

вратите се на оригинални запис, а затим напишите}
 Тражи (Ф, РецН);

 Врите (Ф, ДуммиМембер);

{затвори датотеку}крај;

Завршавање задатка

То је то - сада имате све што је потребно за извршавање задатка. На диск можете да напишете информације чланова, можете да их читате натраг, а неке податке (на пример е-пошту) можете да промените и у „средину“ датотеке.

Оно што је важно јесте да ова датотека није АСЦИИ датотека, овако изгледа Нотепад (само један запис):

 .Делпхи водич г О5 · ¿и. 5.. Б В.Лƒ, „¨.делпхи@абоутгуиде.цомИ.. ç.ç.ï.. 

instagram story viewer