Pascal-records
パスカル-レコード
Pascal配列を使用すると、同じ種類の複数のデータ項目を保持できる変数のタイプを定義できますが、レコードはPascalで使用できる別のユーザー定義データ型であり、異なる種類のデータ項目を組み合わせることができます。
レコードはさまざまなフィールドで構成されています。 あなたが図書館であなたの本を追跡したい場合、あなたは各本について次の属性を追跡したいかもしれません-
- タイトル
- 著者
- 件名
- ブックID
レコードを定義する
レコードタイプを定義するには、タイプ宣言ステートメントを使用できます。 レコードタイプは次のように定義されています-
以下は、Bookレコードを宣言する方法です-
レコード変数は通常の方法で次のように定義されます
または、レコードタイプ変数を直接定義できます-
レコードのフィールドへのアクセス
レコードの任意のフィールドにアクセスするには、メンバーアクセス演算子(。)を使用します。 メンバーアクセス演算子は、レコード変数名とアクセスするフィールドの間のピリオドとしてコーディングされます。 以下は、構造の使用法を説明する例です-
上記のコードをコンパイルして実行すると、次の結果が生成されます-
サブプログラムの引数としての記録
他の変数またはポインターを渡すのと非常によく似た方法で、レコードをサブプログラムの引数として渡すことができます。 あなたは上記の例でアクセスしたのと同様の方法でレコードフィールドにアクセスします-
上記のコードをコンパイルして実行すると、次の結果が生成されます-
レコードへのポインター
次のように他の変数へのポインタを定義するのと非常に似た方法でレコードへのポインタを定義できます-
これで、レコードタイプ変数のアドレスを上記で定義したポインター変数に格納できます。 作成されたポインタ型の変数を宣言するには、varキーワードを使用します-
これらのポインタを使用する前に、これらのポインタによって操作されるレコード名型変数のストレージを作成する必要があります。
そのレコードへのポインターを使用してレコードのメンバーにアクセスするには、^を使用する必要があります。 次のような演算子-
最後に、使用されなくなったストレージを廃棄することを忘れないでください-
Booksレコードへのポインターを使用して、最初の例を書き直しましょう。 これはあなたが概念を理解するのが簡単になることを願っています-
上記のコードをコンパイルして実行すると、次の結果が生成されます-
Withステートメント
レコードのメンバーには、メンバーアクセス演算子(。)を使用してアクセスできることを説明しました。 この方法では、レコード変数の名前を毎回書き込む必要があります。 With ステートメントは、これを行うための代替方法を提供します。
最初の例から取られた次のコードスニペットを見てください-
同じ割り当ては、 With ステートメントを使用して記述できます-