|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 18432 (0x4800)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, procedure Dir, seg_02c209
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦cfc2e13cd⟧ »Space Info Vol 2«
└─⟦this⟧
with Directory;
with Text_Io;
with Calendar;
with Time_Utilities;
procedure Dir is
Obj, Obj1, Obj2, The_Copy : Directory.Object;
Parent : Directory.Object;
Path : constant String := "/home/aconit/Odissey/Directory/test";
Item : Character;
begin
begin
Directory.Any_Object.Open (The_Object => Obj, Object_Name => Path);
exception
when Directory.Non_Existent_Object_Error =>
begin
Text_Io.Put_Line ("Le repertoire " & Path &
" va etre cree ...");
Directory.Any_Object.Create
(The_Object => Obj,
Object_Name => Path,
Object_Class => Directory.Directory_Class,
Object_Owner_Permissions =>
Directory.Statistics.R_W_X_Permission,
Object_Group_Permissions =>
Directory.Statistics.R_W_Permission,
Object_Other_Permissions =>
Directory.Statistics.R_W_Permission);
exception
when others =>
Text_Io.Put_Line ("Le repertoire " & Path &
"n'a pas pu etre cree...");
return;
end;
end;
declare
I : Directory.Iterator;
T : Calendar.Time;
begin
I := Directory.Traversal.Children (The_Object => Obj,
Pattern => "*",
Class => Directory.Unknown_Class);
Text_Io.New_Line;
Text_Io.Put_Line ("Le repertoire " & Directory.Naming.Full_Name (Obj) &
" est constitue des fichiers suivant :");
while not Directory.Done (Iter => I) loop
Obj1 := Directory.Value (Iter => I);
T := Directory.Statistics.Time_Of_Last_Update (The_Object => Obj1);
Text_Io.Put_Line
(Directory.Naming.Simple_Name (The_Object => Obj1) & " " &
Directory.Image (The_Class =>
Directory.Class (The_Object => Obj1)) &
Directory.Statistics.Image
(The_Permissions => Directory.Statistics.Owner_Permissions
(The_Object => Obj1)) &
Directory.Statistics.Image
(The_Permissions => Directory.Statistics.Group_Permissions
(The_Object => Obj1)) &
Directory.Statistics.Image
(The_Permissions => Directory.Statistics.Other_Permissions
(The_Object => Obj1)) &
" " & Time_Utilities.Image
(Date => Time_Utilities.Convert_Time (T),
Date_Style => Time_Utilities.Day_Month_Year,
Time_Style => Time_Utilities.Short,
Contents => Time_Utilities.Both) &
" " & Integer'Image (Directory.Statistics.Object_Size
(The_Object => Obj1)));
Directory.Next (Iter => I);
end loop;
Directory.Naming.Set_Default_Context ("/home/aconit/Odissey/Directory");
Text_Io.New_Line;
Text_Io.Put_Line
("Le context courant va etre le repertoire suivant : " &
Directory.Naming.Full_Name (Directory.Naming.Default_Context));
Text_Io.Put ("Appuyer une touche pour continuer...");
Text_Io.Get (Item);
Text_Io.New_Line;
Text_Io.Put_Line ("Copy du repertoire " &
Directory.Naming.Full_Name (Obj) &
" dans le repertoire 'test_bis'");
begin
Directory.Any_Object.Copy (Source => Obj,
Destination_Name => "test_bis",
Destination => The_Copy);
Text_Io.Put_Line ("La copy a reussie dans le repertoire " &
Directory.Naming.Full_Name
(The_Object => The_Copy));
exception
when Directory.System_Error =>
Text_Io.Put_Line ("Erreur system : " &
Directory.Get_Error_Message);
when others =>
Text_Io.Put_Line ("Erreur rencontree lors de la copie ...");
end;
Text_Io.New_Line;
Text_Io.Put_Line
("Le repertoire " & Directory.Naming.Full_Name (The_Copy) &
" a ete cree et contient le(s) fichier(s) suivant(s) :");
I := Directory.Traversal.Children (The_Object => The_Copy,
Pattern => "*",
Class => Directory.Unknown_Class);
while not Directory.Done (Iter => I) loop
Obj1 := Directory.Value (Iter => I);
T := Directory.Statistics.Time_Of_Last_Update (The_Object => Obj1);
Text_Io.Put_Line
(Directory.Naming.Simple_Name (The_Object => Obj1) & " " &
Directory.Image (The_Class =>
Directory.Class (The_Object => Obj1)) &
Directory.Statistics.Image
(The_Permissions => Directory.Statistics.Owner_Permissions
(The_Object => Obj1)) &
Directory.Statistics.Image
(The_Permissions => Directory.Statistics.Group_Permissions
(The_Object => Obj1)) &
Directory.Statistics.Image
(The_Permissions => Directory.Statistics.Other_Permissions
(The_Object => Obj1)) &
" " & Time_Utilities.Image
(Date => Time_Utilities.Convert_Time (T),
Date_Style => Time_Utilities.Day_Month_Year,
Time_Style => Time_Utilities.Short,
Contents => Time_Utilities.Both) &
" " & Integer'Image (Directory.Statistics.Object_Size
(The_Object => Obj1)));
Directory.Next (Iter => I);
end loop;
Text_Io.New_Line;
Text_Io.Put ("Appuyer une touche pour continuer...");
Text_Io.Get (Item);
Text_Io.New_Line;
Directory.Any_Object.Open (The_Object => Obj2,
Object_Name => "test_bis/test2/test_file");
Parent := Directory.Traversal.Parent (The_Object => Obj2);
Text_Io.Put_Line ("Le repertoire " &
Directory.Naming.Full_Name (Parent) &
" contient le(s) fichier(s) suivant(s)");
I := Directory.Traversal.Children (The_Object => Parent,
Pattern => "*",
Class => Directory.Unknown_Class);
while not Directory.Done (Iter => I) loop
Obj1 := Directory.Value (Iter => I);
T := Directory.Statistics.Time_Of_Last_Update (The_Object => Obj1);
Text_Io.Put_Line
(Directory.Naming.Simple_Name (The_Object => Obj1) & " " &
Directory.Image (The_Class =>
Directory.Class (The_Object => Obj1)) &
Directory.Statistics.Image
(The_Permissions => Directory.Statistics.Owner_Permissions
(The_Object => Obj1)) &
Directory.Statistics.Image
(The_Permissions => Directory.Statistics.Group_Permissions
(The_Object => Obj1)) &
Directory.Statistics.Image
(The_Permissions => Directory.Statistics.Other_Permissions
(The_Object => Obj1)) &
" " & Time_Utilities.Image
(Date => Time_Utilities.Convert_Time (T),
Date_Style => Time_Utilities.Day_Month_Year,
Time_Style => Time_Utilities.Short,
Contents => Time_Utilities.Both) &
" " & Integer'Image (Directory.Statistics.Object_Size
(The_Object => Obj1)));
Directory.Next (Iter => I);
end loop;
Text_Io.New_Line;
Text_Io.Put ("Appuyer une touche pour continuer...");
Text_Io.Get (Item);
Text_Io.New_Line;
Text_Io.Put_Line ("Le fichier " & Directory.Naming.Full_Name (Obj2) &
" vient d'etre efface");
Directory.Any_Object.Delete (The_Object => Obj2);
Text_Io.Put_Line ("Le repertoire " &
Directory.Naming.Full_Name (Parent) &
" vient d'etre efface");
Directory.Any_Object.Delete (The_Object => Parent);
Text_Io.New_Line;
Text_Io.Put_Line ("Le contenu du repertoire " &
Directory.Naming.Full_Name (The_Copy) &
" est donc maintenant le suivant :");
I := Directory.Traversal.Children (The_Object => The_Copy,
Pattern => "*",
Class => Directory.Unknown_Class);
while not Directory.Done (Iter => I) loop
Obj1 := Directory.Value (Iter => I);
T := Directory.Statistics.Time_Of_Last_Update (The_Object => Obj1);
Text_Io.Put_Line
(Directory.Naming.Simple_Name (The_Object => Obj1) & " " &
Directory.Image (The_Class =>
Directory.Class (The_Object => Obj1)) &
Directory.Statistics.Image
(The_Permissions => Directory.Statistics.Owner_Permissions
(The_Object => Obj1)) &
Directory.Statistics.Image
(The_Permissions => Directory.Statistics.Group_Permissions
(The_Object => Obj1)) &
Directory.Statistics.Image
(The_Permissions => Directory.Statistics.Other_Permissions
(The_Object => Obj1)) &
" " & Time_Utilities.Image
(Date => Time_Utilities.Convert_Time (T),
Date_Style => Time_Utilities.Day_Month_Year,
Time_Style => Time_Utilities.Short,
Contents => Time_Utilities.Both) &
" " & Integer'Image (Directory.Statistics.Object_Size
(The_Object => Obj1)));
Directory.Next (Iter => I);
end loop;
exception
when Directory.Non_Existent_Object_Error =>
Text_Io.Put_Line
("Vous essayer d'ouvrir un fichier non exitant...");
when Directory.Already_Existent_Object_Error =>
Text_Io.Put_Line
("Vous essayer de creer un fichier deja existent...");
when Directory.System_Error =>
Text_Io.Put_Line ("Erreur system : " & Directory.Get_Error_Message);
end;
end Dir;
pragma Main;
nblk1=11
nid=2
hdr6=18
[0x00] rec0=1b rec1=00 rec2=01 rec3=014
[0x01] rec0=17 rec1=00 rec2=0d rec3=094
[0x02] rec0=11 rec1=00 rec2=0c rec3=010
[0x03] rec0=14 rec1=00 rec2=05 rec3=05e
[0x04] rec0=18 rec1=00 rec2=06 rec3=010
[0x05] rec0=11 rec1=00 rec2=0a rec3=00c
[0x06] rec0=15 rec1=00 rec2=09 rec3=026
[0x07] rec0=13 rec1=00 rec2=10 rec3=02c
[0x08] rec0=12 rec1=00 rec2=0b rec3=02a
[0x09] rec0=1a rec1=00 rec2=11 rec3=04c
[0x0a] rec0=11 rec1=00 rec2=0f rec3=016
[0x0b] rec0=16 rec1=00 rec2=03 rec3=000
[0x0c] rec0=18 rec1=00 rec2=0b rec3=000
[0x0d] rec0=0d rec1=00 rec2=08 rec3=000
[0x0e] rec0=00 rec1=00 rec2=00 rec3=019
[0x0f] rec0=00 rec1=00 rec2=00 rec3=000
[0x10] rec0=00 rec1=00 rec2=00 rec3=000
tail 0x21724b20883f75745758a 0x42a00088462060003
Free Block Chain:
0x2: 0000 00 0e 00 05 80 02 61 72 02 03 04 05 06 07 20 20 ┆ ar ┆
0xe: 0000 00 07 00 c1 00 49 20 20 20 20 20 20 20 20 20 20 ┆ I ┆
0x7: 0000 00 08 00 11 80 02 29 3b 02 00 09 20 20 20 20 20 ┆ ); ┆
0x8: 0000 00 04 00 f0 80 2a 20 20 20 20 20 20 20 20 20 20 ┆ * ┆
0x4: 0000 00 00 00 04 80 01 26 01 02 03 70 6c 65 5f 4e 61 ┆ & ple_Na┆