function GetNumFromStr(const str: String ):pchar;stdcall ;
var
i:integer;
charset:Set of char;
temp : string ;
begin charset:=['0'..'9','a'..'f','.'] ;for i := 1 to Length(str) do
begin
if (str[i] in charset) then
temp:=temp+uppercase(str[i]);
end;
result:=@temp;
end;procedure TForm1.Button1Click(Sender: TObject);
var
p : pchar;
temp : string;
begin
p:=GetNumFromStr(self.Edit1.Text);
temp:=p^;
showmessage(temp);
end;
没有提取到值,temp为空。怎么修改以上的GetNumFromStr函数?
var
i:integer;
charset:Set of char;
temp : string ;
begin charset:=['0'..'9','a'..'f','.'] ;for i := 1 to Length(str) do
begin
if (str[i] in charset) then
temp:=temp+uppercase(str[i]);
end;
result:=@temp;
end;procedure TForm1.Button1Click(Sender: TObject);
var
p : pchar;
temp : string;
begin
p:=GetNumFromStr(self.Edit1.Text);
temp:=p^;
showmessage(temp);
end;
没有提取到值,temp为空。怎么修改以上的GetNumFromStr函数?
解决方案 »
- 将Panel里所有内容存成图片?告诉我文字图片的制作方法也行啊
- sql server能增加记录 delhpi用DBEDIT增加时说主键约束
- *****有关DELPHI截取字符的问题*****
- 如何将fastreport3报表生成html文件?
- 一个简单的计算!100分
- 搞笑(CSDN)
- 《Delphi5开发人员指南》1087页的例子怎样用的?
- 删除记录的问题
- 用RadioButton来作为显示条件,ADOQuery与DBGrid连用
- 在Delphi里,如何通过隐藏目录来实现隐藏开始菜单中的程序项?还有其它方法可以实现吗?
- 向SARS宣战,为我们死去的白衣天使敬礼!!!
- dbgrid中如何设置行标题
var
i:integer;
charset:Set of char;
temp : string ;
begin charset:=['0'..'9','a'..'f','.'] ;for i := 1 to Length(str) do
begin
if (str[i] in charset) then
temp:=temp+uppercase(str[i]);
end;
result:=temp;
end;procedure TForm1.Button1Click(Sender: TObject);
var
temp : string;
begin
temp:=GetNumFromStr(self.Edit1.Text);
showmessage(temp);
end;
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
function GetNumFromStr(const str: String ):string;stdcall ;
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
p : string;
temp : string;
begin
p:=GetNumFromStr(self.Edit1.Text);
temp:=p;
showmessage(temp);
end;function TForm1.GetNumFromStr(const str: String ):string;stdcall ;
var
i:integer;
charset:Set of char;
temp : string ;
begin charset:=['0'..'9','a'..'f','.'] ;for i := 1 to Length(str) do
begin
if (str[i] in charset) then
temp:=temp+uppercase(str[i]);
end;
result:=temp;
end;
end.
function GetNumFromStr(const str: String ):pchar; stdcall;
var
i:integer;
charset:Set of char;
temp : string ;
begin charset:=['0'..'9','a'..'f','.']; temp:= ''; // 这里可以加上
for i := 0 to Length(str) do
begin
if (str[i] in charset) then
temp:= temp + uppercase(str[i]);
end;
result:= @temp[1]; // 改这里
end;procedure TForm1.Button1Click(Sender: TObject);
var
p : pchar;
temp : string;
begin
temp:= GetNumFromStr(self.Edit1.Text); // 和这里 直接类型转换就可以
//temp:=p;
showmessage(temp);
end;
改为:
function GetNumFromStr(const str: String ):pchar;stdcall ;
var
i:integer;
charset:Set of char;
temp : string ;
ptemp:pchar;
begin charset:=['0'..'9','a'..'f','.'] ;for i := 1 to Length(str) do
begin
if (str[i] in charset) then
temp:=temp+uppercase(str[i]);
end;
Getmem(ptemp,sizeof(temp));
copy(ptemp,temp,sizeof(temp));
result:=ptemp;
end;procedure TForm1.Button1Click(Sender: TObject);
var
p : pchar;
temp : string;
begin
p:=GetNumFromStr(self.Edit1.Text);
//temp:=p^;
strpcopy(temp,p);
showmessage(temp);
end;