2016-03-21 14 views
1

私はAdaの私の自宅プロジェクトのヒント/助けが必要です。だから私はJ_String_Packageを行う必要がありますが、私は実際に私のJ_string型を表現する方法を知りません。仕様では、「J_String型を不透明な判別式レコードとして表現する。文字列の内部表現には標準文字列型を使い、判別式はJ_String型に含まれる文字列のサイズを決定する。 私.adsは、これまで:Ada:どのようにJava文字列を表現するのですか?

package J_String_Pkg is 
    type J_String(Size: Positive) is limited private; 

    --methods etc  

private 
    type J_String(Size: Positive) is record 
     --i need some help here!! :) 
    end record; 
end J_String_Pkg; 

は、すべての助けをありがとう!

答えて

3

あなたはこのようなものが必要です。

type J_String(Size: Positive) is record 
    Contents : String (1 .. Size); 
end record; 

エイダ・リファレンス・マニュアル(ARM 3.7(33))の例の一つに密接に対応しています。

注意すべきことは、あなたのコードは、判別式のデフォルトがないため、一度作成したSizeJ_Stringに変更できないことを意味します。 ARMからの例では、ありません

type Buffer(Size : Buffer_Size := 100) is 
    record 
     Pos : Buffer_Size := 0; 
     Value : String(1 .. Size); 
    end record; 

は(GNATで、任意の割合で)あなたはBuffer_Size文字を事前に割り当てるの費用で、インスタンスのサイズを変更することができます。あなたはではないPositiveでこれを行いたいです;ほとんどのコンピュータには2ギガバイトのRAMがありません!

+0

ありがとうございます、それはうまく動作します! :) – DaniFreecs

関連する問題