type
TMyBuffer = record
name :array[0..9] of char;
sex :char;
email:array[0..30] of char;
end;我怎样才能将一个定义为:
buf :Array[0..11] of char;数据转换为TMyBuffer类型的。
比如:
buf:='Jhon [email protected]'那么
var
mybuf :TMyBuffer;
begin
...
mybuf.name --> 'Jhon Kitty'
mybuf.sex --> 'F'
mybuf.email-->'[email protected]'
...
end;
TMyBuffer = record
name :array[0..9] of char;
sex :char;
email:array[0..30] of char;
end;我怎样才能将一个定义为:
buf :Array[0..11] of char;数据转换为TMyBuffer类型的。
比如:
buf:='Jhon [email protected]'那么
var
mybuf :TMyBuffer;
begin
...
mybuf.name --> 'Jhon Kitty'
mybuf.sex --> 'F'
mybuf.email-->'[email protected]'
...
end;
回复贴子:
yopeng(鹏鹏) 回复于2001-11-27 14:31:54
??????????
Happyledian(伍志勇) 回复于2001-11-27 14:34:30
type
TMyBuffer = record
name :array[0..9] of char;
sex :char;
age :integer;
email:array[0..30] of char;
end;
能否用TStream来实现?
Write(MyBuffer, SizeOf(MyBuffer));
finally
Free;
end;
TMyBuffer = record
rName: array[0..9] of Char;
rSex: Char;
rEMail: array[0..30] of Char;
end;procedure TForm1.Button1Click(Sender: TObject);
var
MyBuffer: TMyBuffer;
Buf: array[0..SizeOf(TMyBuffer)] of Char;
begin
Buf := 'Jhon [email protected]';
with TMemoryStream.Create do try
Write(Buf, SizeOf(TMyBuffer));
Position := 0;
Read(MyBuffer, SizeOf(TMyBuffer));
finally
Free;
end;
ShowMessage(Format(
'MyBuffer.rName:%s'#13#10 +
'MyBuffer.rSex:%s'#13#10 +
'MyBuffer.rEMail:%s'#13#10,
[MyBuffer.rName, MyBuffer.rSex, MyBuffer.rEMail]));
end;
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}type
TMyBuffer = record
rName: array[0..9] of Char;
rSex: Char;
rAge: Integer;
rEMail: array[0..30] of Char;
end;procedure TForm1.Button1Click(Sender: TObject);
var
MyBuffer: TMyBuffer;
Buf: array[0..SizeOf(TMyBuffer)] of Char;
begin
Buf := 'Jhon [email protected]';
with TMemoryStream.Create do try
Write(Buf, SizeOf(TMyBuffer));
Position := 0;
Read(MyBuffer, SizeOf(TMyBuffer));
finally
Free;
end;
ShowMessage(Format(
'MyBuffer.rName:%s'#13#10 +
'MyBuffer.rSex:%s'#13#10 +
'MyBuffer.rAge:%d'#13#10+
'MyBuffer.rEMail:%s'#13#10,
[MyBuffer.rName, MyBuffer.rSex, MyBuffer.rAge,MyBuffer.rEMail]));
end;end.
行不行?
TMyBuffer = packed record
rName: array[0..9] of Char;
rSex: Char;
rAge: array[0..2] of Char;
rEMail: array[0..30] of Char;
end;procedure TForm1.Button1Click(Sender: TObject);
var
MyBuffer: TMyBuffer;
Buf: array[0..SizeOf(TMyBuffer)] of Char;
begin
Buf := 'Jhon [email protected]';
with TMemoryStream.Create do try
Write(Buf, SizeOf(TMyBuffer));
Position := 0;
Read(MyBuffer, SizeOf(TMyBuffer));
finally
Free;
end;
ShowMessage(Format(
'MyBuffer.rName:%s'#13#10 +
'MyBuffer.rSex:%s'#13#10 +
'MyBuffer.rAge:%s'#13#10 +
'MyBuffer.rEMail:%s'#13#10,
[string(MyBuffer.rName),
string(MyBuffer.rSex),
string(MyBuffer.rAge),
string(MyBuffer.rEMail)]));
end;