検索がうまくいきません(pascal)
名前と電話番号を外部環境'teldata'に出力し、検索したい人の名前を入力し対応する電話番号を答えるプログラムを作りました(登録されてなければ「該当者なし」と出力、'end'が入力されるまで続く)。
コンパイルは通ったのですが検索結果はおかしなものになってしまいました。
どこが間違っているのか、ご教授ください。
ソース)
program kadai(input,output,meibo);
type KojinData = record
name : packed array[1..20] of char;
tel : packed array[1..15] of char
end;
var meibo : file of KojinData;
x : KojinData;
begin
rewrite( meibo,'teldata' );
write('名前:');
readln(x.name);
repeat
write('電話番号:');
readln( x.tel );
write( meibo,x);
write('名前:');
readln( x.name )
until (x.name='end');
reset( meibo,'teldata' );
write('名前:');
readln(x.name);
repeat
while not eof( meibo ) do begin
read( meibo,x )
end;
if x.name = x.name then begin
writeln('電話番号:',x.tel) end
else begin
writeln('該当者なし') end
until (x.name='end')
end.
結果)
名前:a
電話番号:1
名前:b
電話番号:2
名前:c
電話番号:3
名前:end
名前:a
電話番号:3
電話番号:3
電話番号:3
電話番号:3 {強制終了するまで続く}
補足
回答ありがとうございました。名前、社員番号で1つの要素をつくり、その集合(配列?)から検索したいのですが、配列で考えて良いのでしょうか?その点が分かりません。テーブルの作成はまだ出てきていませんので、他の方法で考えたいと思います。