レコード型に文字列を代入するには?

解決


ケイズ  2004-03-31 08:47:52  No: 8105

固定長テキストファイルの項目定義としてレコード型を使用したいのですが、
レコード型変数へ項目ごとにではなく
レコード丸ごとの文字列変数の内容を代入するにはどのような方法があるでしょうか?

(例)
レコード型は以下のようにChar配列を使用します。

MyRecord = Record
  ID    : Char[0..4];  // 数字5桁
  Name  : Char[0..9];  // 文字10桁
end;

これに"00001ABCDEFG   "というString型変数の値を一括で代入したいのです。
よろしくお願いします。


ケイズ  2004-03-31 09:02:58  No: 8106

すみません、Char配列の記述に誤りがありました。
Array[0..4] of Char とすべきですね。


jok  2004-03-31 17:31:02  No: 8107

こんな感じ

type
MyRecord = record
  ID    : array[0..4] of Char;  // 数字5桁
  Name  : array[0..9] of Char;  // 文字10桁
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  s:string;
  r:MyRecord;
begin
  s := '00001ABCDEFG   ';
  Move(PChar(s)^,r,15);
  Label1.Caption := r.ID;
  Label2.Caption := r.Name;
end;


ケイズ  2004-03-31 22:32:24  No: 8108

jokさん、ありがとうございます。
うまく渡せました(感激)。
ポインタを使わなければいけないのだろうとは思っていたのですが、
勉強不足でして、PCharの逆参照を使うという知恵はありませんでした。
勉強して理屈を理解したいと思います。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加