On Wed, 11 Oct 2006 09:27:28 +0700 Dmitriy Anisimkov wrote:
Boris Samorodov wrote:
>Есть ли возможность в Аде работать с файлами одновременно на запись и >чтение?
Есть. И это с пол пинка находится в документации.
Угу. Вопрос был про последовательные порты. Прежде чем задать вопрос здесь нашёл через гугл кучу обсуждений в том числе и comp.lang.ada. Именно там видел (ссылку уже не помню), что про последовательные порты и Streams (и именно про одновременную запись/чтение) было написано, что Streams предназначен совсем для другого. Но у меня сложилось
впечатление, что в той статье было написано не "нельзя", а "не стОит".
Например так можно.
-----------
*with* Ada.IO_Exceptions;
*package* Ada.Streams.Stream_IO *is*
4
*type* Stream_Access *is* *access* *all* Root_Stream_Type'Class; 5
*type* File_Type *is* *limited* *private;*
6
*type* File_Mode *is* (In_File, Out_File, Append_File);
7
*type* Count *is* *range* 0 .. /implementation-defined/; *subtype* Positive_Count *is* Count *range* 1 .. Count'Last;
-- /Index into file, in stream elements./
8
*procedure* Create (File : *in* *out* File_Type;
Mode : *in* File_Mode := Out_File;
Name : *in* String := "";
Form : *in* String := "");
----------------
Хм, Inout_File mode видел. Такого -- нет. Спасибо за пример, буду над ним думать.
Есть еще способы. И их так же легко найти.
Если вышеприведённый пример в числом виде есть в RM -- то да, таки легко найти. Пошёл читать библию.
Спасибо за рекомендации.
WBR
--
bsam
Boris Samorodov wrote:
>----------------
>Хм, Inout_File mode видел. Такого -- нет. Спасибо за пример, буду над >ним думать.
Наверное я поспешил с цитатами из RM. В данном случае режим файла либо In либо Out.
Наверное придется открывать 2 файла одновременно, один на запись другой на чтение.
Либо пользоваться библиотеками другими.
Dmitriy Anisimkov wrote:
>Boris Samorodov wrote:
>----------------
>Хм, Inout_File mode видел. Такого -- нет. Спасибо за пример, буду над >ним думать.
>Наверное я поспешил с цитатами из RM. В данном случае режим файла либо >In либо Out.
>Наверное придется открывать 2 файла одновременно, один на запись другой >на чтение.
>Либо пользоваться библиотеками другими.
Ааа вот есть
---------------
*package* Ada.Direct_IO *is*
3
*type* File_Type *is* *limited* *private*;
4
*type* File_Mode *is* (In_File, Inout_File, Out_File);
Чтобы оставить новое сообщение необходимо Зарегистрироваться и Войти