2

get_line を使用してより具体的にすることに少し問題があります。ファイルから行を取得して使用する必要があります。特に行が文字だけで構成されていない場合、フロートもあります。この場合、get_line を使用できますか? ありがとうございました。この小さな例から始めましょう:

with Ada.Text_Io;

use Ada.Text_Io;

procedure Getline is

   A:String;

   T:string;

begin

   Open(File => F, Mode => In_File, Name => Nom_Fichier);

   A:=Get_Line(F,In_File, T);

   Put(A);

end Getline;`
4

2 に答える 2

5

に渡す必要があるパラメーターを推測しているようですGet_LineARMの関連部分を確認することをお勧めします。関数 Get_Lineは a のみを受け取り、 aFile_Typeを返しますString。このプロシージャ Get_Lineは、File_Type出力パラメータとして aStringおよびa を受け取りますNatural

次に、String不定のサブタイプです。つまり、at 宣言に何かを割り当てるか、その境界を提供する必要がありますAサンプルコードの実際のバージョンは次のとおりです。

with Ada.Text_IO; use Ada.Text_IO;

procedure Getline is
   F : File_Type;
   File_Path : constant String := "testfile.stl";
begin
   Open (File => F, Mode => In_File, Name => File_Path);
   declare
      A : String := Get_Line (F);
   begin
      Put (A);
   end;
   Close (File => F);
end Getline;

より複雑なことを試す前に、言語の基本に慣れておく必要があります。ウィキブックは始めるのに適した場所です。回答された行からフロートを読み取ることに関する実際の質問を取得したい場合は、潜在的な行がどのように見えるかについて詳細を提供する必要があります。

于 2013-10-19T07:39:49.420 に答える
0

Get_Line単純に「行」(次の行ターミネータまたはファイルの終わりまでの文字のセット) をテキストとして解釈し、そのように呼び出し元に渡します。したがって、ファイルに次のものが含まれている場合:

10.52

を呼び出すとGet_Line、文字列 "10.52" が返されます。

Float_Text_IOを使用してそれを読み込もうとすると、float 値が返されるというのは本当かもしれません10.52。ただし、テキスト ファイル内のテキストにはメタデータが関連付けられていないため、コンピューターは、テキストを解析して float を作成できるかどうかを確認しない限り、テキストがたまたま表現可能な float であることを知る方法がありません。もちろん、呼び出しのようなものを介して要求しない限り、わざわざそれを行うことはありませんFloat_Text_IO

于 2013-10-18T19:11:28.513 に答える