2017-09-23 12 views
0

ReadAllCars関数を使用してレコードの配列を読み込めません。カーレコードの4つの入力すべてをCars配列に読み込むにはどうすればよいですか?私は動的配列エラーを取得し続けます。配列やレコードの詳細を入力するには、どのように数字を読みますか?

type 
cars = record 
    model:String; 
    year:integer; 

end; 
car = array of cars; 


function readCar(prompt: String): Cars; 
begin 
    WriteLn(prompt); 
    result.model := ReadString('Car Model: '); 
    result.year := ReadInteger('Year: '); 
end; 

**(this is my problem)** 
function ReadAllCars(count:integer): Cars; 
var 
    carArray: array of cars; 
    i:integer; 
begin 
    setLength(carArray, count); 

    for i := 0 to high(carArray)do 
    begin 
     result.carArray[i] := readCar('Enter Car Details'); 
    end; 
end; 

procedure Main(); 

var 
cars: Array of Car; 
begin 
    cars := ReadAllCars(4); 
end; 

答えて

2

問題はここにある:

function ReadAllCars(count:integer): Cars; 

この機能は、レコードではなく、配列として宣言されたタイプの車を返します。

type Cars = record ...には、宣言された変数cars : array of carsが混在しています。

function ReadAllCars(count:integer): Car; 
var 
    i:integer; 
begin 
    setLength(Result, count); 
    for i := 0 to high(Result)do 
    begin 
    result[i] := readCar('Enter Car Details'); 
    end; 
end; 


これは次のようになりますかReadAllCarsです

関連する問題