小问题,急! 这是PB中的代码,在DELPHI中怎么写?string ls_bfr ls_bfr= space(40) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 var ls_bfr:stringls_bfr:=space;//这句看不明白.. var S: array[0..79] of char;begin { Set to all spaces } FillChar(S, SizeOf(S), Ord(' '));end; S := StringOfChar('A', 10);sets S to the string 'AAAAAAAAAA'. 上面2种,一种是填充字符数组,一种是填充 String ls_bfr := StringOfChar(' ', 40); unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public end;varss:string; Form1: TForm1; Function OpenPort( PortName:string; PortHandle:longint):longint;stdcall;far;External 'micro900.dll';Function ClosePort():longint;stdcall;far;External 'micro900.dll';Function SelectPort ( PortHandle:longInt):longint;stdcall;far;External 'micro900.dll';Function PowerOn() :longint;stdcall;far;External 'micro900.dll';Function PowerOff() :longint;stdcall;far;External 'micro900.dll';Function CardChanged():longint;stdcall;far;External 'micro900.dll';Function CardPresent(): longint;stdcall;far;External 'micro900.dll';Function GetCardType( ATRBuffer:string):longint; stdcall;far;External 'micro900.dll';Function Read_4442_NO_PB ( StartPos:longint; NOB :longint;Bfr:pchar):longint; stdcall;far;External 'micro900.dll';implementationfunction f_readcard ():string;//功能描述:从第33个字节开始读取数据,读取数据长度为40 bytes//返回值:读卡所得的字符串.有数据值--成功,空串--失败//-------------------------------------------//操作步骤://1.上电//2.检查卡的状态及类型//3.读卡//4.下电//注意:失败后返回要下电操作,并释放串口 var ll_result:longint; //返回值ls_bfr :string; //读卡缓冲变量 ls_ATRbuffer:string; //检验卡类型缓冲变量 ll_startpos:longint; //读卡开始点 ll_nob:longint; //读取数据长度 ll_PortHandle :longint; ls_com :string; Buffer: pchar; ss:string; Moudle: THandle; Pfunc:TFarProc; s:array [0..40]of char ;begin// ls_bfr:=space; FillChar(S, SizeOf(S), Ord(' ')); //getmem(Buffer,40); //预分配内存// getmem(buffer,4) ; //预分配内存//初始化读卡器 ls_com := 'COM1'; // showmessage('1'); ll_result := OpenPort(ls_com, ll_PortHandle); //showmessage(inttostr(ll_porthandle)); // If ll_result = 0 Then // exit ;{if ll_porthandle =0 then showmessage('错误,无法初始化IC卡读写设备。发卡管理窗口将关闭!') else SelectPort(ll_PortHandle); }//1.上电//showmessage('1');//SelectPort(ll_PortHandle);poweron() ;//showmessage('2');//2.检查卡的状态及类型if cardpresent()<> 1 thenbegin showmessage('提示,没有IC卡在读写器内。') ; poweroff() ; closeport() ; exit;end ;{if getcardtype(ls_atrbuffer) <> 2 thenbegin showmessage('错误,该卡不是横县医保卡。请用医保专用卡。') ; poweroff(); closeport(); exit;end ; }//3.读卡ll_result := Read_4442_NO_PB(33,40,s) ;//虚读一次 注:虚读的原因见相关文档ll_result := Read_4442_NO_PB(33,40,s); //实读ss:=ls_bfr; //返回字符串poweroff();closeport() ;{if ll_result <> 0 then showmessage('提示,无法读取卡内信息。') ; poweroff() ; closeport() ;exit; // 读卡失败返回空串end; }//poweroff();//closeport() ;//ss:=ls_bfr;//showmessage(ls_bfr); //返回字符串 end;{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);beginf_readcard();showmessage(copy(ss,1,11));end;end.我的代码如下,运行到最后说地址出错,请大家在帮忙! delphi7中出现未定义ActiveConnections-1 DELPHI LoadPackage 某个bpl速度很慢 菜鸟问题:这两句pascal语句是啥意思呀? 如何求一个颜色的视觉反色? 如 黑色 对应 白色 请问Delphi7的内部版本号,D6是140.. 序列的生成得算法 如何将封装在DLL中的MDI子窗口的主菜单与MDI父窗口融合? 菜鸟求助 一个控件由三个Panel 组成底下一个上面两个,但是如何响应上面两个Panel 的OnClick事件呢? 就是如何写两个不同的Click 怎么办?! delphil 中事务问题,急、急、急! 一个TDBNavigator的继承问题。
ls_bfr:stringls_bfr:=space;//这句看不明白..
begin
{ Set to all spaces }
FillChar(S, SizeOf(S), Ord(' '));
end;
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
end;var
ss:string;
Form1: TForm1;
Function OpenPort( PortName:string; PortHandle:longint):longint;stdcall;far;External 'micro900.dll';
Function ClosePort():longint;stdcall;far;External 'micro900.dll';
Function SelectPort ( PortHandle:longInt):longint;stdcall;far;External 'micro900.dll';
Function PowerOn() :longint;stdcall;far;External 'micro900.dll';
Function PowerOff() :longint;stdcall;far;External 'micro900.dll';
Function CardChanged():longint;stdcall;far;External 'micro900.dll';
Function CardPresent(): longint;stdcall;far;External 'micro900.dll';
Function GetCardType( ATRBuffer:string):longint; stdcall;far;External 'micro900.dll';
Function Read_4442_NO_PB ( StartPos:longint; NOB :longint;Bfr:pchar):longint; stdcall;far;External 'micro900.dll';implementation
function f_readcard ():string;//功能描述:从第33个字节开始读取数据,读取数据长度为40 bytes
//返回值:读卡所得的字符串.有数据值--成功,空串--失败
//-------------------------------------------
//操作步骤:
//1.上电
//2.检查卡的状态及类型
//3.读卡
//4.下电
//注意:失败后返回要下电操作,并释放串口
var
ll_result:longint; //返回值
ls_bfr :string; //读卡缓冲变量
ls_ATRbuffer:string; //检验卡类型缓冲变量
ll_startpos:longint; //读卡开始点
ll_nob:longint; //读取数据长度
ll_PortHandle :longint;
ls_com :string;
Buffer: pchar;
ss:string;
Moudle: THandle;
Pfunc:TFarProc;
s:array [0..40]of char ;
begin
// ls_bfr:=space;
FillChar(S, SizeOf(S), Ord(' '));
//getmem(Buffer,40); //预分配内存
// getmem(buffer,4) ; //预分配内存//初始化读卡器 ls_com := 'COM1';
// showmessage('1'); ll_result := OpenPort(ls_com, ll_PortHandle);
//showmessage(inttostr(ll_porthandle));
// If ll_result = 0 Then
// exit ;
{if ll_porthandle =0 then showmessage('错误,无法初始化IC卡读写设备。发卡管理窗口将关闭!') else
SelectPort(ll_PortHandle); }//1.上电
//showmessage('1');//SelectPort(ll_PortHandle);
poweron() ;
//showmessage('2');
//2.检查卡的状态及类型
if cardpresent()<> 1 then
begin
showmessage('提示,没有IC卡在读写器内。') ;
poweroff() ;
closeport() ;
exit;
end ;
{if getcardtype(ls_atrbuffer) <> 2 then
begin
showmessage('错误,该卡不是横县医保卡。请用医保专用卡。') ;
poweroff();
closeport();
exit;
end ; }//3.读卡
ll_result := Read_4442_NO_PB(33,40,s) ;//虚读一次 注:虚读的原因见相关文档
ll_result := Read_4442_NO_PB(33,40,s); //实读
ss:=ls_bfr; //返回字符串
poweroff();
closeport() ;
{if ll_result <> 0 then
showmessage('提示,无法读取卡内信息。') ;
poweroff() ;
closeport() ;
exit; // 读卡失败返回空串
end; }
//poweroff();
//closeport() ;
//ss:=ls_bfr;
//showmessage(ls_bfr); //返回字符串 end;{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
f_readcard();
showmessage(copy(ss,1,11));
end;end.
我的代码如下,运行到最后说地址出错,请大家在帮忙!