Menü
Bedava
kayıt
ana  /  İpuçları/ Veri dosyaları nelerdir. Konuyla ilgili bilişim ve BİT için veri dosyaları plan-özet

Veri dosyaları nelerdir. Konuyla ilgili bilişim ve BİT için veri dosyaları plan özeti

7 numaralı ders

"Veri dosyaları" konulu bir dersin geliştirilmesi.

Ders konusu: Veri dosyaları.

Dersin amacı: Öğrencileri veri dosyası hakkında eğitin. Dosyalarla çalışma prosedürleri.

Dersin Hedefleri:

  1. Veri dosyaları.
  2. Dosyalarla çalışma prosedürleri.

Ders ekipmanı:bilgisayar, projektör.

Ders planı

1. Organizasyonel an (selamlama).

- Merhaba, oturun. Bugün kimler yok?

2. Yeni materyal öğrenmek.

Veri dosyaları.

Veri dosyası manyetik bir ortam üzerinde bilgi depolamak için ayrılmış bir alandır ve belirli bir adı vardır. Dosya - aynı zamanda, bazıları kontrol kodları olarak anlaşılan bir sayı (kod) dizisidir (örneğin, bir dosya sonu kodu vardır, metin dosyaları için bir satır sonu vardır). Bu sayı dizisi nedir sadece programda çözülebilir. Dosyanın kendisinde, bilginin niteliğini belirleyen hiçbir işaret yoktur.

Fiziksel düzeyde bir dosya ile çalışmak son derece zordur. Bu nedenle, sıradan bir değişkende olduğu gibi bir dosya için türü Pascal belirler. Örneğin şunları yazabilirsiniz:

a: tamsayı dosyası; (Tamsayı dosyası.)

f: dize dosyası; (Satırlar dosyası.)

Bir dosyayla çalışmak için algoritma:

  1. Dosya, özel bir prosedürle bir dosya değişkeni ile ilişkilendirilir.
  1. Bir dosya değişkeni açılır veya oluşturulur (dosya fiziksel olarak açılır, ancak programcı bu sürece dahil olmaz).
  2. Gerekli veri okuma ve yazma işlemleri yapılır.
  3. Dosya değişkeni kapalı.

Amaç 1. Aşağıdaki işlemlerin gerçekleştirileceği bir program yazalım:

  1. Dosya açılır.
  2. 100 ardışık tam sayı yazılır.
  3. Dosya kapandı.
  4. Dosya açılır.
  5. Dosyada bulunan numaralar okunur ve ekrana yazdırılır.

Program örneği;

ben, u: tamsayı;

(Daha sonra dosyaya bağlanabilecek bir değişken tanımlanır,

F: tamsayı dosyası;

başlamak

(Dosya değişkeni dosyaya bağlıdır,

Kesme işaretlerinde adı geçen kişi)

Ata (f, 'dosya');

(Henüz böyle bir dosya olmadığı için oluşturuluyor ve açılıyor)

Yeniden yaz (f);

(Numaralar dosyaya yazılır)

i için: = 1'den 100'e kadar (f, i);

(Dosya kapatılır)

Kapat (f);

(Dosya zaten var olduğundan, sadece açılır)

Sıfırla (f);

(Numaralar dosyadan okunur ve ekranda görüntülenir)

i için: = 1 ila 100 do

Başlamak

(f, u);

('', u);

Son;

son.

Bir dosya değişkeni tamamen normal bir değişken olamaz. Bu nedenle, dosya değişkenleri için özel prosedürler ve işlevler vardır. Kısa liste Borland Pascal'da dosyalarla çalışmak için prosedürler ve fonksiyonlar aşağıda verilmiştir.

  1. atamak - bir dosyayı bir dosya değişkenine bağlayan bir prosedür.
  2. Sıfırla - var olan bir dosyayı açar ve dosya konumu işaretçisini sıfır öğesine ayarlar.
  3. yeniden yaz - Bir dosya oluşturur.
  4. kesmek - dosyayı geçerli konumdan başlayarak keser.
  5. aramak - dosya işaretçisini belirtilen konuma ayarlar.
  6. eof - dosyanın sonuna ulaşıldığında true, aksi takdirde false döndüren bir işlev.
  7. Dosya boyutu - dosya bildiriminde belirtilen türdeki kayıt sayısındaki dosya boyutunu hesaplar.

Not

Bir dosya için geçerli konuma işaretçi diye bir şey vardır. Bu bir tamsayı değeridir (Borland Pascal için şuna benzer bir değerdir: longint ), geçerli dosya konumunun numarasını saklar. Her okuma/yazma işlemi ile işaretçi bir sonraki kayda kaydırılır. Kayıt, dosya bildiriminde belirtilen türün uzunluğudur. Dosyadaki kayıtların numaralandırılması sıfırdan başlar.

Verilen örnekteki veri yapıları oldukça doğru tanımlanmıştır, ancak operatörde(f,a) yazın; derleyici bir hata mesajı verecektir. Yani: derleyici bir tür uyuşmazlığı olduğunu bildirecektir. Görünüşe göre değişken türleri bir ve f aynıdır. Ancak, derleyici açısından durum böyle değildir. İki farklı yapı tanımladık ve derleyici haklı olarak bunların farklı olabileceğini varsayar ve aynı olup olmadığını kontrol etme zahmetine girmez.

Bu sorun şu şekilde çözülür:

Program örneği;

crt kullanır;

Tip

R = kayıt

S: dize;

ben: tamsayı;

Son;

bir: r;

F: r dosyası;

başlamak

A.s: = "fsfsfsf";

A.i: = 8;

(f, a) yazın;

son.

Bu program öncekiyle aynı görevi yerine getirir, ancak burada derleyici için herhangi bir sorun yoktur.

Bir dosya, karmaşık bir yapının bir bileşeni olabilir. Örneğin, bir dizi dosya tamamen geçerlidir:

f: tamsayı dizi dosyası;

Dosya, kaydın bir bileşeni olabilir:

Program örneği;

Rekor

S: dize;

F: tamsayı dosyası;

Son;

başlamak

Ata (a.f, "file.dat"); yeniden yaz (a.f);

son.

Bu örnek bir dizi dosyasını açar. Yani, her dosya kaydı 10 tamsayıdan oluşan bir dizidir. Ayrıca, on öğenin tümünün değerlerini belirleyemeyebiliriz, dosya yine de dizinin tanımında verildiği gibi on tanesini içerecektir.

Aynı fiziksel dosya bir dosya türü olarak açılabilir ve ardından başka bir dosya türüyle aynı şekilde açılabilir:

Program örneği; crt kullanır;

S: dize;

ben: tamsayı;

F: dize dosyası;

D: tamsayı dosyası;

başlamak

clrscr;

Ata (f, "file.dat"); yeniden yaz (f);

S: = "gdgdgjagdjasg";

i için: = 1'den 10'a kadar (f, s);

Kapat (f);

Ata (d, "file.dat"); reset (d);

eof (d) yapmamakla birlikte

Başlamak

Oku (d, i); yaz (i, "");

Son;

son.

Bu örnekte, file.dat adlı bir dosya bir dize dosyası olarak açılır ve bir miktar içerikle doldurulur, ardından kapatılır ve yeniden açılır, ancak bu sefer bir sayı dosyası olarak. Bu tür işlemler Pascal dili için oldukça yasaldır, bu, fiziksel düzeyde dosya türünün hiçbir şekilde sabitlenmemiş olmasının bir sonucudur.

Sonuç: Dosya - büyük bilgi kümelerini saklamanızı sağlayan bir yapıdır. Dosya türlerinin sıradan dil veri türleri olması, işleme kolaylıklarına katkıda bulunur. Dosyalarda veri depolamanın tek dezavantajı, nispeten düşük erişim hızıdır.

3. Ev ödevi.

İncelenen materyali gözden geçirin. Temel kavramları öğrenin: veri dosyası; dosya; dosyalarla çalışmak için algoritma; dosyalarla çalışan prosedürler ve işlevler; kayıt.

4. Özetlemek

Derste başarılı olan öğrencilere not verilir.


Veri dosyaları

Program geliştirme sürecinde, genellikle saklanan bilgileri depolamak ve işlemek gerekir. Bu bilgiler çok çeşitli olabilir: sorunları çözmek için ilk veriler, hesaplama sonuçları, listeler vb. Veritabanı dosyaları bu tür bilgileri depolamak için kullanılabilir. Veri dosyaları metindir. Disklerdeki veya diğer makine ortamlarındaki verilerin organizasyonuna bağlı olarak, metin dosyaları, sıralı erişim, doğrudan erişim dosyaları ve ikili dosyalar.

Sıralı metin dosyaları (sıralı dosyalar) herhangi bir yapıya sahip değildir. Bu dosyaların yapısı okuyucunun kendisi tarafından belirlenir. Sıralı metin dosyalarında her satır iki ile biter. özel karakterler: klavyede Enter tuşuna bastığınızda program metnine girilen satır sonu ve satır başı. Bu nedenle, sıralı bir metin dosyasını işlemenin en kolay yollarından biri onu satır satır okumaktır. Sıralı metin dosyaları oluşturmak da kolaydır. Herkes tarafından oluşturulabilir Metin düzeltici... Sıralı erişim dosyasındaki veriler sırayla bayt bayt yazılır. İstenen bilgileri analiz etmek ve seçmek için dosyanın tamamen okunması gerekir. Bu, hacim gereksinimlerini artırır. rasgele erişim belleği ve program yürütme hızını azaltır.

Doğrudan Erişim Metin Dosyaları (Doğrudan Erişim Dosyaları) sabit uzunlukta kayıtları olan metin veya yapılandırılmış ikili dosyaları okumak ve yazmak için tasarlanmıştır. Kayıt numarasına göre bir dosyadan veri yazmanıza ve almanıza izin verirler. Bu, verileri bulmak ve almak için gereken süreyi azaltır. Ancak bu, kayıttaki her alanın uzunluğu üzerinde önceden anlaşmaya varılması gerektiğinden, disk alanının verimsiz kullanımına yol açar.

İkili dosyalar(ikili) isteğe bağlı yapılandırılmış verileri okumak ve yazmak için kullanılır. İkili dosyalar, kesinlikle yeni bir dosya türü değildir, ancak herhangi bir türdeki dosyayı yönetmenin yollarından biridir. İkili dosyalarla çalışma yöntemleri, dosyanın herhangi bir baytını okumanıza ve değiştirmenize izin verir.

Veri dosyalarıyla çalışmak için, bir dosyayı açma, bir dosyayı kapatma, bir dosyadan veri yazma ve okuma komutlarının yanı sıra dosyalarla çalışmayı kolaylaştıran bir dizi işlev kullanılır. Tüm bu komutlar, Temel dilin tüm sürümleri için gelenekseldir.

Dosyaları açma

Dosyaları açmak için komutu kullanın Açık .

(dosya türü) için "file_spec" dosyasını açın

[#] N olarak



Seçenek " dosya_spec ”, Bildiğiniz gibi dosya adının sürücüsünü, rotasını, adını ve uzantısını belirtmenizi sağlar. Örneğin: R: /Prognoz/Ucheb/prognoz1.dan. Dosyanın bilgisayarlarda ve MS DOS işletim sistemi ile kullanılabilmesi için dosya adının ve uzantısının MS DOS işletim sisteminin kurallarına göre oluşturulmuş olması gerekir. Yani dosya adında ve dosya adı uzantısında sadece Latince karakterler ve sayılar kullanılabilir, dosya adı bir harfle başlamalı, dosya adı uzunluğu 8 karakteri geçmemeli ve dosya adı uzantısı dört karakter olmalıdır, dahil bir dönem. Dosya adında noktalara ve boşluklara izin verilmez. Dosya belirtimi tırnak işaretleri içine alınmıştır.

Seçenek İçin dosya türünü belirler. Dosya türü, yapısını ve kullanım yöntemini belirtir ve aşağıdaki değerleri alabilir:

Giriş- sıralı erişim dosyası, okumaya açık;

Çıktı- sıralı erişim dosyası, yazmaya açık;

Ekle- veri eklemek için açık olan sıralı erişim dosyası;

eski- veri yazmak ve okumak için açık ikili dosya:

Rastgele- doğrudan erişim dosyası veri yazmak ve okumak için açıktır.

Seçenek Erişim bilgisayar ağlarında çalışırken verilere erişim haklarını tanımlar. Üç anlamı olabilir:

Okumak- bir dosyadan veri okunmasına izin verilir;

Yazmak- bir dosyaya veri yazılmasına izin verilir;

Okuma yazma- veri okuma ve yazmaya izin verilir. Bu erişim modu varsayılan olarak kullanılır.

Seçenek Kilit . Okuma-yazma modu genellikle birçok kullanıcı veya uygulama tarafından kullanılabilen dosyalarla çalışmak üzere tasarlandığından, paylaşıldığında verilerin bütünlüğünü sağlamanız gerekir. Bunun için aşağıdaki değerleri alabilen engelleme parametresi kullanılır:

Paylaşılan- dosya tüm işlemler tarafından veri okumak ve yazmak için kullanılabilir;

KilitOkuma- okuma yasağı. Başka hiçbir işlem dosyadan veri okuyamaz. Bu parametre şu durumlarda ayarlanabilir: şu an başka hiçbir işlem okuma işlemini gerçekleştirmez.

Kilit Yaz- kayıt yasağı. Başka hiçbir işlem dosyaya veri yazamaz. Bu parametre, şu anda bir yazma işlemi yürüten başka bir işlem yoksa ayarlanabilir.

KilitOkuYaz- veri yazma, okuma yasağı. Bu parametre, şu anda başka bir işlem yazma, okuma işlemi gerçekleştirmiyorsa ayarlanabilir.

Seçenek Olarak - kanal numarasını tanımlar. İşaret # göz ardı edilebilir. Kanal numarası 1'den 255'e kadar değerler alabilir. Aynı anda açık olan kanalların sayısı, Config.sys dosyasında belirtilen işletim sistemi limitlerine göre belirlenir.

Seçenek uzun - sadece doğrudan erişim dosyalarında kullanılır. Kaydın uzunluğunu bayt olarak ayarlar.

NS açılış veya başka bir deyişle, başlatma dosyalarında aşağıdaki işlemler gerçekleştirilir:

dosya spesifikasyonu ve program numarası arasında bir bağlantı kurulur. Bu nedenle, bu dosya ile sonraki tüm işlemlerde, dosya spesifikasyonuna değil kanal numarasına bir bağlantı verilir;

G/Ç deyimlerini uygulamak için kullanılan sistem veya yazılım arabelleği sabitlenir. Bir arabellek kullanmak, diske program erişim sayısını azaltır ve sonuç olarak veri yazma ve okuma hızını artırır;

parametrelerin ilk değerleri, sözde dosya kontrol bloğunda bulunur.

Dosyaları kapatma

Dosyaları kapatmak için komutu kullanın Kapat ... Komut sözdizimi:

Kapat [#<номер канала> ]

Kanal numarası parametreli Kapat komutu belirtilen kanalı kapatır. Parametresiz kapatma komutu her şeyi kapatır dosyaları aç... Kapat komutu arabelleği temizler ve işletim sistemine dosya ayırma tablosunu güncelleme talimatını verir.

Bir dosyaya veri yazma ve veri dosyalarından bilgi okuma komutları dosya türüne bağlıdır.

Bilgisayardaki veriler dosyalarda saklanır. Dosya, organizasyonun ve verilerin bir bilgisayarda depolanmasının ana yapısal birimidir. Dosya kavramının özü aşağıdakilere dayanan birçok tanım vardır: bir dosya belirli bir miktarda bilgidir (bir dosya bir bilgisayar programı içerebilir, Metin belgesi, sayısal veriler, kodlanmış çizim vb.), bir adı vardır ve harici bir bellekte saklanır. Dosya adı bir nokta ile ayrılmış iki bölümden oluşur: ilk bölüm dosya adının kendisidir, ikincisi türünü belirleyen uzantısıdır, yani dosyada ne depolandığını belirli dosya(bilgisayar programı, grafik verileri vb.). Dosya adı kullanıcı tarafından atanır (kullanıcı herhangi bir nedenle bir dosya adı vermezse, bilgisayar programı işin tamamlanmasından sonra varsayılan bir ad atar) ve dosya türü kullanıcı veya kullanıcı tarafından zorlanabilir. uygulama ( bilgisayar programı) oluşturduğunuzda otomatik olarak. Tablo 6.2, yıldızla işaretlenmiş bazı dosya türlerini ve bunlara karşılık gelen uzantıları gösterir olası isimler Dosyalar.

Tablo 6.2

Dosya adına ek olarak, bilgilerin bir dosyada saklanma şeklini (veri yapısı) ve dosyanın ekranda veya yazdırırken nasıl görüntülendiğini tanımlayan "dosya formatı" gibi bir şey vardır. Dosya biçimi, dosya adlarının yazım kurallarını belirler ve bilgisayarda yüklü olan işletim sistemi (OS) tarafından desteklenen dosya sistemine bağlıdır. Örneğin, işletim sisteminde MSDOS dosya adı Latin alfabesinin en fazla sekiz harfini içermelidir ve uzantı üç Latin harfinden oluşur - primer.txt, prim.txt, priml.txt, vb. pencereler dosya adı 255 karaktere kadar olabilirken, Rus alfabesi de kullanılabilir - örneğin albüm, jpg. sus, vb. İşletim sisteminde bu kurallar MSDOS ve işletim sistemi ailesi pencereler dosyaları adlandırırken aşağıdaki karakterlerin ve simgelerin kullanılmasını yasaklayın: / \: *?< >|.

Yukarıdaki harici depolama aygıtlarından herhangi biri çok sayıda dosya depolayabilir. Depolanma sırası belirlenir dosya sistemi belirli bir dosya yapısına sahip olabilir. Her dosya adının, gerektiğinde MT'nin harici bir bellekte bulmasını sağlayan kendi benzersiz adresi vardır. istenen dosya ve ardından verileri ondan RAM'e okuyun. Dosyalar işletim sistemleri işlevsel veya tematik olarak, sırayla diğer dizinlere veya klasörlere dahil edilebilen, yani karmaşık bir dosya yapısına sahip olan dizinler veya klasörler halinde birleştirilebilirler.

Program, iki sorunu çözmek için dosya kavramını kullanır:

  • programın sonuçlarını ve bunların diğer yazılım araçları tarafından daha fazla kullanılmasını kaydetmek;
  • programdaki giriş verileri için bir kaynak olarak harici bir veri dosyası kullanma.

Pascal'da, harici dosyalar MS-DOS'tan gereksinimlerine göre değerlendirilir. MS-DOS'taki bir dosya, bilgilerin depolandığı diskte adlandırılmış bir alandır, dosya adı gereksinimi MS-DOC gereksinimlerine kesinlikle uymalıdır (uygun ad en fazla 8 karakter, uzantı - 3 karakter, harfler Latin alfabesinin ilk karakteri bir harf olmalıdır) ...

Pascal'da herhangi bir harici dosyanın 3 özelliği vardır:

  • harici dosyanın bir adı vardır ve bu, programın birden çok veriyle aynı anda çalışmasını sağlar;
  • veri dosyaları aynı türden bileşenleri içermelidir;
  • harici dosyanın uzunluğu belirtilmemiş ve herhangi bir uzunlukta olabilir.

Harici dosyalar programdaki dosya adının yerini alan bir dosya değişkeni ile ilişkilidir. Pascal'da dosya tipi bir değişken veya dosya tipi Tür bölümünde 3 yoldan biriyle ayarlanır:

  • [ad]: [tür] dosyası;
  • [isim]: Metin;
  • [ad]: Dosya;

[name] - dosya değişkeninin adı.

Aşağıdaki dosya türleri, bildirim yöntemiyle ayırt edilir:

  • yazılan dosyalar (Dosya);
  • metin dosyaları (Metin);
  • türlenmemiş dosyalar

Bir dosya kavramı iki taraftan görülebilir: ilk taraf, dosyanın üzerinde adlandırılmış bir alan olduğunu söyler. harici bellek bilgi (veri) içerir. Bu kavramdaki bir dosyaya fiziksel dosya denir, bu dosya fiziksel olarak diskte bulunur; ikinci taraf, bir dosyanın programlamada kullanılan birçok veri yapısından biri olduğunu söylüyor. Bu anlamda, bir dosyaya mantıksal dosya denir, böyle bir dosya, bir program derlenirken mantıksal bir temsilde bulunur. Bir programda, bir dosya mantıksal olarak belirli bir türdeki dosya değişkeni olarak temsil edilir.

Fiziksel bir dosyanın yapısı, bir depolama ortamında düzenli bir bellek bayt dizisi olarak temsil edilebilir.

Mantıksal dosya yapısı, programın dosyayı tanıma şeklidir. Mecazi anlamda mantıksal bir dosya, bir dosyanın fiziksel yapısına baktığımız bir penceredir (şablon). Programlama dillerinde böyle bir pencere, Dosya bileşeni olarak kullanılan veri türüdür.

Mantıksal yapıda, harici dosyanın her bileşeni, bileşen türüne göre belirlenen yer kaplar. Temel olarak, bir veri dosyasının mantıksal yapısı, bir dizinin yapısına benzer. Bir dosya ve bir dizi arasındaki fark şu şekildedir: bellek tahsisi sırasında, dizi için eleman sayısı sabittir ve tamamen OP'dedir. Dizi elemanları, bildirimde belirtilen sınırlara göre numaralandırılır. Programda çalışma sürecinde bir dosyanın öğelerinin sayısı değişebilir ve ayrıca harici bir ortamda bulunur. Metin dosyaları hariç dosya elemanlarının numaralandırılması, 0'dan başlayarak soldan sağa doğru başlar. Herhangi bir zamanda bileşenlerin sayısı bilinmemektedir. Ancak dosyanın sonunda, ASCII kodu # 26'dan (Ctrl + z) kontrol karakteri olarak kullanılan EOF (Dosya Sonu) karakteri vardır. Ayrıca program, dosyanın uzunluğunu belirleyebilir ve standart prosedürleri ve işlevleri kullanarak diğer işlemleri gerçekleştirebilir.

Pascal'daki özel bir dosya türü metin dosyalarıdır. Temel olarak Metin dosyası bir tür daktilo dosyası olarak düşünülebilir. Metin dosyalarında dosya sonuna ek olarak satır sonu EoLn (Satır Sonu) da kullanılır. EoLn özelliği, Enter tuşu tarafından oluşturulan # 13 koduna karşılık gelir. Bir metin dosyasının yapısı aşağıdaki gibi temsil edilebilir:

Klavye girişini ve ekran çıkışını kullanan Standart Giriş ve Çıkış dosyaları metin dosyalarıdır. Metin dosyası bir Char türü olsa da, metin dosyası ile sembol dosyası arasında farklar vardır:

  • metin dosyalarında, yazarken sayısal veriler otomatik olarak bir karakter dizisine dönüştürülür ve okuma yapıldığında ters dönüştürme gerçekleşir;
  • metin dosyalarının doğrudan erişimi yoktur; bu, verilerin yalnızca bütünüyle okunabileceği (yazılabileceği) anlamına gelir;
  • yalnızca bazı standart veri türleri bir metin dosyasını okuyabilir ve yazabilir;
  • metin dosyasında satır sonları bulunur;
  • bir metin dosyasını okumak ve yazmak için, diğer veri türlerinde yasak olan ReadLn ve WriteLn'nin kullanılmasına izin verilir.

Harici dosyalarla çalışmak için prosedürler ve işlevler

Bir programda dosya kullanmak için, programdaki dosya adının yerini alacak dosya türüne karşılık gelen bir dosya değişkeni bildirmelisiniz. Bir programın harici bir dosyaya erişebilmesi için harici bir dosyaya bağlanması gerekir.

Biçim: Ata ([dosya_değişkeni], [dosya_adı_veya_mantıksal_cihaz_adı]);

Dosya adı, geçerli dizinden başlayarak bu dosyanın tam yolunu içermelidir. Mantıksal aygıt olarak iki aygıt kullanılır: 'Con'- monitör ekranı; 'Prn'- Yazıcı.

Yeniden yazmak- yeni bir dosya oluşturma.

Biçim: Yeniden yaz ([dosya_değişkeni]);

Bu prosedür, medyada bir boşluk oluşturur, yeni dosya dosya değişkeniyle önceden ilişkilendirilmiş bir adla. Yeni dosya, dosyanın başına işaret eden özel bir değişkenle bilgi almaya hazırlanır. Bu ada sahip bir dosya varsa, silinir.

Sıfırla- dosyayı orijinal durumuna ayarlamak.

Biçim: Sıfırla ([dosya_değişkeni]);

Prosedür, dosya değişken adıyla ilişkili harici dosyayı okuma için hazırlar. Bu, dosya işaretçisini dosyanın başına taşır. Dosya, Sıfırlama'yı kullandığınız zaman oluşturulmalıdır.

Okumak (ReadLn) - bir dosyadan okuma.

Biçim: Oku ([file_variable], [input_list]);

Giriş listesindeki değişken adları, dosya değişkeniyle ilişkili dosyadaki bileşenlerle aynı türde olmalıdır. Her değişkenin değeri dosya bileşenine eşit olarak ayarlanır ve her değeri okuduktan sonra işaretçi bir sonraki bileşene geçer. Read ve ReadLn prosedürlerini kullanmak için, dosyanın önce Reset prosedürü ile açılması gerekir. ReadLn yalnızca metin dosyaları için kullanılır ve sonraki bileşeni okuduktan sonra kullanıldığında, işaretçi ilk satırsonu karakterine hareket eder.

Yazmak (WriteLn) - bir dosyaya yazma.

Biçim: Yaz ([file_variable], [output_list]);

Çıktı listesindeki değişkenlerin değeri, dosya değişkeninin dosya adıyla ilişkili dosya bileşenleri olarak yazılır. Dosya, yazmadan önce Yeniden Yazma prosedürü ile oluşturulmalıdır. WriteLn sonraki bileşeni yazdıktan sonra işaretçiyi yeni bir satırın başına taşır.

Metin dosyalarıyla çalışırken, Okuma (ReadLn) ve Yazma (WriteLn) prosedürlerinin kullanımını doğru bir şekilde gözlemlemek gerekir. Veri yazarken Yazma - okuma Okuma, WriteLn yazarken - ReadLn okuma.

Kapat- dosyayı kapatmak.

Biçim: Kapat ([dosya_değişkeni]);

Rutinler dosyayı kapatır, ancak dosya değişkeninin önceden Assign'da ayarlanmış olan dosyayla ilişkisi korunur. Bir dosya ve bir dosya değişkeni arasındaki bağlantı, Assign'ın ek kullanımı olmadan yazma veya okuma için açılabilir.

Ekle- eleman ekleme.

Biçim: Ekle ([file_variable]);

Prosedür, dosyanın sonuna veri eklemek için mevcut bir dosyayı açar. Dosya zaten açıksa, Ekle kullanılarak bir giriş eklemek için kapatılır ve yeniden açılır.

Sil- diskten bir dosyayı siler.

Biçim: Sil ([dosya_değişkeni]);

Dosya değişkeniyle ilişkili dosyayı siler. Prosedürü kullanmadan önce dosya kapatılmalıdır Kapat.

EoF işlevi

Biçim: EoF ([dosya_değişkeni]);

Boolean işlevi, işaretçi dosyanın sonundaysa true, aksi takdirde false döndürür.

EoLn işlevi

Biçim: EoLn ([dosya_değişkeni]);

Boolean işlevi, işaretçi dizenin sonundaysa true, aksi takdirde false döndürür.

Değişkenlerde ve dizilerde bulunan tüm bilgiler programın sonunda kaybolur. İleride ihtiyaç duyulursa, bu bilgiler bir sabit diske, diskete veya başka bir ortama kaydedilir ve program bir sonraki başlatılışında dış ortamdan dizilere veya değişkenlere geri yüklenir. Bir diske veya başka bir ortama böyle bir kayıt denir. veri dosyası. Veri dosyalarına ek olarak, ayrıca yürütülebilir dosyalar(.exe veya.com uzantılı makine kodlarındaki programlar). Bazı programlama dilleri ve sistemleri (Pascal lehçelerinden olanlar dahil - Borland Pascal ve Delphi), böyle bir dosyayı kendi programınızdan çalıştırmanıza izin verir. Pascal ABC'nin böyle bir fırsatı yok.

Dosyalar gruplandırılmıştır (dizinler veya klasörler). Hangi dosyayla çalışılacağını belirlemek için belirtin Ad Soyad... Birkaç bölümden oluşur, örneğin:

Programımızın bulunduğu dizin çalışan (geçerli) dizindir. Bu, böyle bir dizinde bulunan bir veri dosyasına erişirken yolu belirtmenize gerek olmadığı anlamına gelir.

Programdaki veri dosyasını kullanmak için VAR bölümünde ihtiyacınız var. bir dosya değişkenini tanımla(f / p), bu dosya hakkında bilgi depolayacak (tam ad, uzunluk, oluşturma tarihi ve saati vb.). Bu açıklama farklı farklı şekiller Dosyalar. Örneğin:


Tipik olarak tanımlanan dosyalarda, tüm veriler dizilerde olduğu gibi aynı türdedir (açıklamada belirtilmiştir). Bu nedenle, dizilerin içeriği genellikle bu tür dosyalarda saklanır. Tüm satırların aynı uzunlukta olması gerektiğinden, metni tipik bir dosyada saklamak elverişsizdir. Metni farklı uzunluklarda satırlarla depolamak için bir metin dosyası kullanılır. Böyle bir dosyada bir satırı diğerinden ayırmak için her satır ENTER tuşuna karşılık gelen bir karakterle biter. Dizelere ek olarak, sayılar da bir metin dosyasında saklanabilir (ancak bu, içinde saklandıkları tipik bir dosyadan daha az ekonomiktir). ikili kod, karakter karakter değil).

NS dosya adını dosya değişkenine girin, komut kullanılır

ata (f / p, 'tam dosya adı');

Bu komutta, çalışma dizininde (programın kendisi ile aynı yerde) bulunan dosyanın yolunu atlayabilirsiniz.

Dosya değişkeninin dosyayla ilgili geri kalan tüm bilgileri alabilmesi için buna ihtiyacınız vardır. açık aşağıdaki komutlardan birini kullanarak:

sıfırla (f / p); - var olan bir dosyayı açar ve başlangıcına bir işaretçi ayarlar (genellikle bir dosya okumak için bu şekilde açılır, ancak tipik bir dosyaya yazabilirsiniz. Dosyadaki veriler yerine yazma gerçekleşir).

ekle (f / p); - var olan bir dosyayı açar ve işaretçiyi sonuna ayarlar (dosyanın sonundan sonra bilgi eklemek için).

yeniden yaz (f / p); - yeni bir dosya oluşturur (eğer dosya zaten mevcutsa temizlenir).

Dosya işaretçisi, bilgileri okuyabileceğimiz (veya yazabileceğimiz) dosyadaki konumu saklar. Her okuma veya yazma işlemi, işaretçiyi bir sonraki kayda taşır.

NS dosyadan bilgi oku bir değişkene yerleştirerek komutlar kullanılır:

oku (f / p, değişkenlerin listesi); - bir örnekten ve bir metin dosyasından okur.

readln (f / n, değişkenlerin listesi); - bir metin dosyasından okur.

Bir metin dosyasından okunmuyorsa Tek kelimeler veya sayılar, ancak tüm dize, o zaman yalnızca bir dize değişkeni kullanılır.

yaz (f / p, değişkenlerin listesi); - standart ve metin dosyasına yazar.

writeln (f / p, değişkenler listesi); - satır beslemeli bir metin dosyasına yazar.

Bir dosyada gezinmek için (sadece tipik bir dosya!) Arama komutunu kullanın (f / p, kayıt numarası); ... Dosyadaki kayıtlar sıfırdan numaralandırılmıştır. Eklenecek dosyanın sonuna ulaşmak için Yeni giriş, bu komutta bir sayı olarak, dosya boyutunu belirleyen dosya boyutu (f / p) işlevi kullanılır (bayt cinsinden değil, bu tür kayıtlarda).

Uzunluğu bilinmeyen bir dosyadan okurken, okumadan önce, işaretçi son kayıttan sonra ise true veren eof (f / p) işlevini kullanarak dosyanın henüz bitip bitmediğini kontrol edebilirsiniz. Örneğin:


Dosyayla çalışmayı bitirdikten sonra, kapat kapatma komutu (f / p); ... Bunu yapmazsanız, Pascal dosya değişikliklerini diske kaydetmeyecektir. Ancak herhangi bir değişiklik olmasa bile dosyayı kapatmanız önerilir. Bundan sonra, dosya değişkeni ve dosya arabellekleri (Pascal'ın bellekle çalışırken kullandığı bellek alanı) serbest bırakılır.

rename komutu (f / p, 'new_name'), dosya değişkeniyle ilişkili dosyayı yeniden adlandırır. Dosya kapatılmalıdır.

Silme (f / n) komutu, dosya değişkeni ile ilişkili dosyayı siler. Dosya kapatılmalıdır.

Dosya işlemleri her zaman başarılı olmaz. Örneğin, sürücüye takmayı unuttuğunuz bir disketten okumaya çalışırsanız, bir hata mesajı görünür ve program çöker. Bu tür hataları önlemek daha iyidir. Diskte belirtilen ada (ve yola) sahip bir dosya varsa FileExists ('name') işlevi True, aksi takdirde False döndürür. Mevcut bir dosyaya erişmeye çalışmadan önce kullanılmalıdır. Yeni bir dosya oluşturmanız gerekirse, önce CanCreateFile ('name') işlevi kullanılır. Dosya adı veya yolu yanlışsa veya diskte yer yoksa veya başka nedenlerle bu adla bir dosya oluşturmak mümkün değilse, False döndürür.