ada
फ़ाइलें और I / O स्ट्रीम
खोज…
टिप्पणियों
Ada मानक पुस्तकालय पाठ या बाइनरी डेटा की पारंपरिक फ़ाइलों के I / O, साथ ही साथ स्ट्रीम फ़ाइलों के I / O के लिए प्रदान करता है। बाइनरी डेटा की फाइलें एक प्रकार के मूल्यों के अनुक्रम होंगी, जबकि स्ट्रीम फाइलें संभवतः विभिन्न प्रकारों के मूल्यों के अनुक्रम हो सकती हैं।
/ से स्ट्रीम फ़ाइलों के लिए विभिन्न प्रकार के तत्वों को पढ़ने और लिखने के लिए, Ada प्रकारों के गुणों द्वारा निरूपित उपप्रोग्रामों का उपयोग करता है, जैसे 'Read , 'Write , 'Input , और 'Output । बाद वाले दो नंगे इनपुट और आउटपुट के अलावा एरे बाउंड्स, रिकॉर्ड डिस्क्रिमिनेट्स और टाइप टैग्स को पढ़ेंगे और लिखेंगे, जो Read एंड 'Write परफॉर्म करेंगे।
फ़ाइल बनाने और लिखने के लिए
प्रक्रियाओं Create , Put_Line , पैकेज से Close Ada.Text_IO का उपयोग फ़ाइल file.txt बनाने और लिखने के लिए किया जाता है।
with Ada.Text_IO;
procedure Main is
use Ada.Text_IO;
F : File_Type;
begin
Create (F, Out_File, "file.txt");
Put_Line (F, "This string will be written to the file file.txt");
Close (F);
end;
परिणाम फ़ाइल file.txt
This string will be written to the file.txt
एक स्ट्रीम बनाएं और लिखें
सबटाइप्स की स्ट्रीम-ओरिएंटेड विशेषताओं को एक फाइल में ऑब्जेक्ट्स लिखने के लिए कहा जाता है, नंगे और द्विआधारी डिफ़ॉल्ट अभ्यावेदन का उपयोग करते हुए।
with Ada.Streams.Stream_IO;
procedure Main is
type Fruit is (Banana, Orange, Pear);
type Color_Value is range 0 .. 255;
type Color is record
R, G, B : Color_Value;
end record;
Fruit_Colors : constant array (Fruit) of Color :=
(Banana => Color'(R => 243, G => 227, B => 18),
Orange => Color'(R => 251, G => 130, B => 51),
Pear => Color'(R => 158, G => 181, B => 94));
use Ada.Streams.Stream_IO;
F : File_Type;
begin
Create (F, Name => "file.bin");
for C in Fruit_Colors'Range loop
Fruit'Write (Stream (F), C);
Color'Write (Stream (F), Fruit_Colors (C));
end loop;
Close (F);
end Main;
परिणाम फ़ाइल
00000000 00 2e f3 00 e3 00 12 00 01 2e fb 00 82 00 33 00
00000010 02 2e 9e 00 b5 00 5e 00
स्ट्रीम फ़ाइल से खोलें और पढ़ें
प्रोग्राम में वापस स्ट्रीम करने के लिए बनाएँ और लिखें का डेटा पढ़ें।
with Ada.Streams.Stream_IO;
procedure Main is
--
-- ... same type definitions as in referenced example
--
Fruit_Colors : array (Fruit) of Color;
use Ada.Streams.Stream_IO;
F : File_Type;
X : Fruit;
begin
Open (F, Mode => In_File, Name => "file.bin");
loop
Fruit'Read (Stream (F), X);
Color'Read (Stream (F), Fruit_Colors (X));
end loop;
exception
when End_Error =>
Close (F);
pragma Assert -- check data are the same
(Fruit_Colors (Banana) = Color'(R => 243, G => 227, B => 18) and
Fruit_Colors (Orange) = Color'(R => 251, G => 130, B => 51) and
Fruit_Colors (Pear) = Color'(R => 158, G => 181, B => 94));
end Main;