Delphi6中要为空的字符

Delphi6中要为空的字符,delphi,char,delphi-6,Delphi,Char,Delphi 6,在Delphi6中,如何将索引指定的字符设置为空字符 procedure TMainForm.Button1Click(Sender: TObject); var i: integer; s_ord_account : String[10]; begin s_ord_account := '0930002930' ; i := 1; REPEAT IF s_ord_account[i] = '0' THEN s_ord_account[i] := ''; INC(i

在Delphi6中,如何将索引指定的字符设置为空字符

procedure TMainForm.Button1Click(Sender: TObject);
var i: integer;
s_ord_account : String[10];
begin
   s_ord_account := '0930002930' ;
   i := 1;
REPEAT
   IF s_ord_account[i] = '0' THEN
    s_ord_account[i] := '';
  INC(i);
  UNTIL (i=5) OR (s_ord_account[i] <> ' ');
 MessageDlg(s_ord_account,mtError, mbOKCancel, 0);

yend;
程序TMA通知。按钮1点击(发送者:ToObject);
varⅠ:整数;
s_ord_账户:字符串[10];
开始
s_ord_账户:='0930002930';
i:=1;
重复
如果s_ord_账户[i]=“0”,则
s_ord_账户[i]:='';
公司(一);
直至(i=5)或(s_ord_账户[i]”);
MessageDlg(s_ord_账户,mtError,mbOKCancel,0);
yend;
当我试图执行这段代码时,我得到了一个错误

[错误]Main.pas(30):不兼容的类型:“Char”和“String”


首先,停止使用Turbo-Pascal字符串并使用本机Delphi字符串类型,
string
,对您来说是非常有意义的

没有空字符这样的东西。可以使用该函数从字符串中删除字符。更简单的方法是使用函数。这使得您的代码完全没有必要

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  s: string;

begin
  s := StringReplace('0930002930', '0', '', [rfReplaceAll]);
  Writeln(s);
end.
输出

93293 93293
没有空字符!字符总是有一个值。您可以设置一个字符值,将其视为空白,如
#32
'
#0
''
是一个空字符串,没有字符。空字符串意味着删除/删除字符,也许您希望像@SirRufo建议的那样使用空格字符?FastCoders是一个更快的替代方案,合并到以后的Delphi版本中。