-- RT_C132A3A1 : Lecture du fichier pi_100_millions.txt de 100 000 000 de decilames de Pi -- et création d'un fichier de caractères -- Coyright Jacques-deric Rouault -- Version 1.3 du 20120227 WITH Text_io, sequential_io; USE Text_io; PROCEDURE RT_C132A3A1 IS ftxt : File_type; str : String (1..80); lon : integer; PACKAGE sioc IS NEW sequential_io (Character); fc : sioc.File_type; ------------------------------------------------------------------------------------------------------- PROCEDURE traite1 IS rangdeb : INTEGER; BEGIN rangdeb:=1; put (str(rangdeb..rangdeb+9)); put (" "); FOR r IN rangdeb..rangdeb+9 LOOP sioc.write (fc,str(r)); END LOOP; rangdeb:=12; put (str(rangdeb..rangdeb+9)); put (" "); FOR r IN rangdeb..rangdeb+9 LOOP sioc.write (fc,str(r)); END LOOP; rangdeb:=23; put (str(rangdeb..rangdeb+9)); put (" "); FOR r IN rangdeb..rangdeb+9 LOOP sioc.write (fc,str(r)); END LOOP; rangdeb:=34; put (str(rangdeb..rangdeb+9)); put (" "); FOR r IN rangdeb..rangdeb+9 LOOP sioc.write (fc,str(r)); END LOOP; rangdeb:=45; put (str(rangdeb..rangdeb+9)); put (" "); FOR r IN rangdeb..rangdeb+9 LOOP sioc.write (fc,str(r)); END LOOP; New_line; END traite1; ------------------------------------------------------------------------------------------------------- PROCEDURE traite2 IS rangdeb : INTEGER; BEGIN rangdeb:=1; put (str(rangdeb..rangdeb+9)); put (" "); FOR r IN REVERSE rangdeb..rangdeb+9 LOOP sioc.write (fc,str(r)); END LOOP; rangdeb:=12; put (str(rangdeb..rangdeb+9)); put (" "); FOR r IN REVERSE rangdeb..rangdeb+9 LOOP sioc.write (fc,str(r)); END LOOP; rangdeb:=23; put (str(rangdeb..rangdeb+9)); put (" "); FOR r IN REVERSE rangdeb..rangdeb+9 LOOP sioc.write (fc,str(r)); END LOOP; rangdeb:=34; put (str(rangdeb..rangdeb+9)); put (" "); FOR r IN REVERSE rangdeb..rangdeb+9 LOOP sioc.write (fc,str(r)); END LOOP; rangdeb:=45; put (str(rangdeb..rangdeb+9)); put (" "); FOR r IN REVERSE rangdeb..rangdeb+9 LOOP sioc.write (fc,str(r)); END LOOP; New_line; END traite2; ------------------------------------------------------------------------------------------------------- BEGIN Put_line ("Debut d'execution du programme Ada RT_C132A3A1"); sioc.Create (fc,sioc.out_file,"RT_C132A3A2.dat"); Open (ftxt,in_file,"pi_100_millions.txt"); FOR i IN 1..21 LOOP get_line (ftxt,str,lon); END LOOP; FOR i IN 1..2_000_000 LOOP get_line (ftxt,str,lon); traite1; END LOOP; Close (ftxt); Open (ftxt,in_file,"pi_100_millions.txt"); FOR i IN 1..21 LOOP get_line (ftxt,str,lon); END LOOP; FOR i IN 1..1 LOOP get_line (ftxt,str,lon); traite2; END LOOP; Close (ftxt); sioc.Close (fc); Put_line ("Fin d'execution du programme Ada RT_C132A3A1"); END RT_C132A3A1;