unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Memo1: TMemo;
Memo2: TMemo;
Button1: TButton;
Button2: TButton;
Button3: TButton;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
Memo1.Lines.LoadFromFile(OpenDialog1.FileName);end;procedure TForm1.Button3Click(Sender: TObject);
begin
if saveDialog1.Execute then
memo2.Lines.SaveToFile(SaveDialog1.FileName);
end;procedure TForm1.Button2Click(Sender: TObject);type
TMyPChar = array of char; var
sssIn : PChar;
sssOut : TMyPChar; procedure func(const sIn: PChar; var sOut: TMyPChar);
var
a,b,c : integer;
name : string;
tempStr: string;
P : PChar;begin
Memo1.Text := 'a|b|nane|c|' ;
begin P := sIn; tempStr := '';
while P^<>'|' do begin
tempStr := tempStr + P^;
Inc(P);
end;
a := StrtoInt(tempStr); Inc(P);
tempStr := '';
while True do begin
if P^ = '|' then Break;
tempStr := tempStr + P^;
Inc(P);
end;
b := StrtoInt(tempStr); Inc(P);
tempStr := '';
while True do begin
if (P^ = '|') or (P^ = ' ') then Break;
tempStr := tempStr + P^;
Inc(P);
end;
name := tempStr; Inc(P);
tempStr := '';
while True do begin
if (P^ <> '|') and (P^ <> ' ') then
tempStr := tempStr + P^;
if P^ = #0 then Break;
Inc(P);
end;
c := StrtoInt(tempStr);
tempStr := Format('%d%s%d%d', [a, name, b, c]); SetLength(sOut, Length(tempStr));
CopyMemory(@sOut[0], @tempStr[1], Length(tempStr)); end;
sssIn := @Memo1.Text[1];
func(sssIn, sssOut);
Memo2.Text := StrPas(@sssOut[0]);end;end.
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Memo1: TMemo;
Memo2: TMemo;
Button1: TButton;
Button2: TButton;
Button3: TButton;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
Memo1.Lines.LoadFromFile(OpenDialog1.FileName);end;procedure TForm1.Button3Click(Sender: TObject);
begin
if saveDialog1.Execute then
memo2.Lines.SaveToFile(SaveDialog1.FileName);
end;procedure TForm1.Button2Click(Sender: TObject);type
TMyPChar = array of char; var
sssIn : PChar;
sssOut : TMyPChar; procedure func(const sIn: PChar; var sOut: TMyPChar);
var
a,b,c : integer;
name : string;
tempStr: string;
P : PChar;begin
Memo1.Text := 'a|b|nane|c|' ;
begin P := sIn; tempStr := '';
while P^<>'|' do begin
tempStr := tempStr + P^;
Inc(P);
end;
a := StrtoInt(tempStr); Inc(P);
tempStr := '';
while True do begin
if P^ = '|' then Break;
tempStr := tempStr + P^;
Inc(P);
end;
b := StrtoInt(tempStr); Inc(P);
tempStr := '';
while True do begin
if (P^ = '|') or (P^ = ' ') then Break;
tempStr := tempStr + P^;
Inc(P);
end;
name := tempStr; Inc(P);
tempStr := '';
while True do begin
if (P^ <> '|') and (P^ <> ' ') then
tempStr := tempStr + P^;
if P^ = #0 then Break;
Inc(P);
end;
c := StrtoInt(tempStr);
tempStr := Format('%d%s%d%d', [a, name, b, c]); SetLength(sOut, Length(tempStr));
CopyMemory(@sOut[0], @tempStr[1], Length(tempStr)); end;
sssIn := @Memo1.Text[1];
func(sssIn, sssOut);
Memo2.Text := StrPas(@sssOut[0]);end;end.
这个函数为什么不实现
2.-->SetLength(sOut, Length(tempStr));
-->CopyMemory(@sOut[0], @tempStr[1], Length(tempStr)); --〉P := sIn; var
sssIn : PChar;
sssOut : TMyPChar;
你定义的变量名为sssOut和sssIn,为什么调用的时候用sOut,sIn ,要知道Sin是求三角函数的系统函数