Delphi'nin Yazılan Dosya Dosyasını Kullanarak Veritabanı Oluşturma

Basitçe bir dosya koymak ikili dizi bir tür. İçinde Delphi, üç sınıf var dosya: yazılı, metin ve türlenmemiş. Yazılan dosyalar, Çift, Tamsayı veya daha önce tanımlanmış özel Kayıt türü gibi belirli bir türde veri içeren dosyalardır. Metin dosyaları okunabilir ASCII karakterleri içeriyor. Türlenmemiş dosyalar, bir dosyaya mümkün olan en az yapıyı uygulamak istediğimizde kullanılır.

Yazılan Dosyalar

Metin dosyaları bir CR / LF (#13#10) kombinasyonu, yazılan dosyalar, belirli bir veri yapısı türünden alınan verilerden oluşur.

Örneğin, aşağıdaki bildirim TMember adlı bir kayıt türü ve bir dizi TMember kayıt değişkeni oluşturur.

tip

 TMember = kayıt

 Ad: sicim[50];

E-posta:
sicim[30];

Mesajlar: LongInt;
son;

var Üyeler: dizi[1..50] nın-nin TMember; 

Bilgileri diske yazmadan önce, bir dosya tipi değişkeni bildirmemiz gerekir. Aşağıdaki kod satırı bir F dosyası değişkeni bildirir.

var F: dosyası TMember; 

Not: Delphi'de yazılan bir dosya oluşturmak için aşağıdakileri kullanırız sözdizimi:

var SomeTypedFile: dosyası sometype

instagram viewer

Bir dosyanın temel türü (SomeType), skaler tip (Double gibi), dizi tipi veya kayıt tipi olabilir. Uzun bir dize, dinamik dizi, sınıf, nesne veya işaretçi olmamalıdır.

Delphi'deki dosyalarla çalışmaya başlamak için, diskteki bir dosyayı programımızdaki bir dosya değişkenine bağlamalıyız. Bu bağlantıyı oluşturmak için şunu kullanmalıyız: AssignFile diskteki bir dosyayı bir dosya değişkeniyle ilişkilendirme yordamı.

 AssignFile (K, 'Members.dat') 

Harici bir dosya ile ilişkilendirme kurulduktan sonra, dosyayı okuma ve yazma için hazırlamak için F dosya değişkeni 'açılmalıdır'. Mevcut bir dosyayı açmak için Sıfırlama prosedürünü veya yeni bir dosya oluşturmak için Yeniden Yaz'ı çağırıyoruz. Bir program bir dosyayı işlemeyi tamamladığında, dosyanın CloseFile yordamı kullanılarak kapatılması gerekir. Bir dosya kapatıldıktan sonra, ilişkili harici dosya güncellenir. Dosya değişkeni daha sonra başka bir harici dosya ile ilişkilendirilebilir.

Genel olarak, her zaman istisna işleme; dosyalarla çalışırken birçok hata oluşabilir. Örneğin: Kapatılmış bir dosya için CloseFile'ı çağırırsak Delphi bir G / Ç hatası bildirir. Öte yandan, bir dosyayı kapatmaya çalışırsak ancak henüz AssignFile'ı çağırmazsak, sonuçlar tahmin edilemez.

Bir Dosyaya Yazma

Bir dizi Delphi üyesini adları, e-postaları ve posta sayısı ile doldurduğumuzu ve bu bilgileri diskteki bir dosyada saklamak istediğimizi varsayalım. Aşağıdaki kod parçası işi yapacaktır:

var

 F: dosyası TMember;

i: tam sayı;
başla

 AssignFile (F, 'members.dat');

 Yeniden Yaz (F);

Deneyin

için j: = 1 için 50 yapmak

 Write (F, Üyeler [j]);

en sonunda

 CloseFile (F);

son;son; 

Dosyadan Okuma

'Members.dat' dosyasındaki tüm bilgileri almak için aşağıdakileri kullanırız kod:

var

 Üye: TMember

 F: dosyası TMember;başla

 AssignFile (F, 'members.dat');

 Sıfırla (F);

Deneyin

olmasa da Eof (F) başla

 Okuyun (F, Üye);

{DoSomethingWithMember;}

son;

en sonunda

 CloseFile (F);

son;son; 

Not: Eof, EndOfFile kontrol işlevidir. Bu işlevi, dosyanın sonunun ötesinde (son kaydedilen kaydın ötesinde) okumaya çalışmadığımızdan emin olmak için kullanırız.

Arama ve Konumlandırma

Dosyalara normalde sıralı olarak erişilir. Bir dosya standart yordam kullanılarak okunursa Okundu veya standart yordam Yaz kullanılarak yazılırsa, geçerli dosya konumu sayısal olarak sıralı sonraki dosya bileşenine (sonraki kayıt) taşınır. Yazılan dosyalara, geçerli dosya konumunu belirtilen bir bileşene taşıyan standart Seek yordamıyla da rasgele erişilebilir. FilePos ve Dosya boyutu geçerli dosya konumunu ve geçerli dosya boyutunu belirlemek için kullanılabilir.

{başa dön - ilk kayıt}

 Ara (F, 0);


{5. kayda gidin}

 Ara (F, 5);


{Sona atla - son kaydın "sonra"}

 Ara (F, Dosya Boyutu (F)); 

Değiştir ve Güncelle

Tüm üye dizisini nasıl yazacağınızı ve okuyacağınızı öğrendiniz, ancak tek yapmanız gereken 10. üyeye bakmak ve e-postayı değiştirmekse? Bir sonraki prosedür tam olarak bunu yapar:

prosedür Değişim e-posta(const RecN: tam sayı; const Yeni E-posta: sicim) ;var DummyMember: TMember;başla

{ata, aç, kural dışı durum işleme bloğu}

 Ara (F, RecN);

 Okuyun (F, DummyMember);

 DummyMember. E-posta: = YeniEMail;

{sonraki kayda hamle okumak,

orijinal kayda geri dönün ve yazın}
 Ara (F, RecN);

 Yaz (F, DummyMember);

{dosyayı kapat}son;

Görevi Tamamlama

Hepsi bu kadar - şimdi görevinizi gerçekleştirmek için gereken her şeye sahipsiniz. Üyelerin bilgilerini diske yazabilir, geri okuyabilir ve hatta dosyanın "ortasındaki" bazı verileri (örneğin e-posta) değiştirebilirsiniz.

Önemli olan bu dosyanın bir ASCII dosyası, işte böyle görünüyor Not Defteri (sadece bir kayıt):

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