删除 ansiString 中的字符
Deleting char's in a ansiString
例如我有这个 ansiString
DISC506002000001008100021041511207123051520515308154091550920TN177869-0151J1 36J207 70077 0 0
正在尝试提取 TN177869-0151J1
但是我使用的代码一直返回给我整个 ansistring。
function TForm5.ParseDataPartNumber(Data: AnsiString):ansistring;
var
ExtraData: Ansistring;
begin
extraData := data;
Delete(extraData,76,30);
Delete(extraData,0,61);
result:=extraData;
end;
我做错了什么?是因为它是反字符串而不是字符串吗?那让我失望了?
您的代码无法正常工作,因为您在 Delete
method. Anyway you can use the Copy
函数的参数中传递了错误的值,而不是像这样
function TForm5.ParseDataPartNumber(const Data: AnsiString): ansistring;
begin
Result:=Copy(Data, 62,15);
end;
字符串是基于 1 的,因此请将您的第 2 个 Delete 更改为索引 1 而不是 0。
即:
function TForm5.ParseDataPartNumber(Data: AnsiString):ansistring;
var
ExtraData: Ansistring;
begin
extraData := data;
Delete(extraData,77,43);
Delete(extraData,1,61);
result:=extraData;
end;
您的索引也有误,无法提取该字符串。我的回答显示更改的值。
例如我有这个 ansiString
DISC506002000001008100021041511207123051520515308154091550920TN177869-0151J1 36J207 70077 0 0
正在尝试提取 TN177869-0151J1
但是我使用的代码一直返回给我整个 ansistring。
function TForm5.ParseDataPartNumber(Data: AnsiString):ansistring;
var
ExtraData: Ansistring;
begin
extraData := data;
Delete(extraData,76,30);
Delete(extraData,0,61);
result:=extraData;
end;
我做错了什么?是因为它是反字符串而不是字符串吗?那让我失望了?
您的代码无法正常工作,因为您在 Delete
method. Anyway you can use the Copy
函数的参数中传递了错误的值,而不是像这样
function TForm5.ParseDataPartNumber(const Data: AnsiString): ansistring;
begin
Result:=Copy(Data, 62,15);
end;
字符串是基于 1 的,因此请将您的第 2 个 Delete 更改为索引 1 而不是 0。
即:
function TForm5.ParseDataPartNumber(Data: AnsiString):ansistring;
var
ExtraData: Ansistring;
begin
extraData := data;
Delete(extraData,77,43);
Delete(extraData,1,61);
result:=extraData;
end;
您的索引也有误,无法提取该字符串。我的回答显示更改的值。