如何删除在X ++中容器的最后一个元素上读取的回车符返回值?
当我为长度创建另一个变量时,字符串为9,而不是8,因为它包含CRLF。
我尝试使用strreplace([container element], '\n', '')
,因为'\n'
是文件inRecordDelimiter
,但这似乎有效。
有什么想法吗?
答案 0 :(得分:2)
有回车符('\ r')和换行符('\ n')。有时使用一个或两个。使用strReplace(...)
,它将用另一个字符模式替换字符模式。因此,最好分别替换每个'\ n'和'\ r',因为'\ r \ n'与'\ n \ r'不同。
strReplace("?!?!?", "?!?", "*")
//returns the text string "*!?".
下面的这个工作有2行实际完成工作,其他循环只是为了显示字符串的ascii字符值。你应该这样做来分析你的字符串,看看还剩下什么。
static void Job69(Args _args)
{
container con = ['string1', 'str2', 'John Smith' + '\r\n' + '123 south st' + '\r\n' + 'Chicago, IL 60652'];
int i;
;
for (i=1; i<=strlen(conpeek(con, conlen(con))); i++)
{
// This just lets you see ascii codes
info(strfmt("%1 - %2", char2num(conpeek(con, conlen(con)), i), substr(conpeek(con, conlen(con)), i, 1)));
}
// This code does the work
con = conpoke(con, conlen(con), strReplace(conpeek(con, conlen(con)), '\r', ''));
con = conpoke(con, conlen(con), strReplace(conpeek(con, conlen(con)), '\n', ''));
for (i=1; i<=strlen(conpeek(con, conlen(con))); i++)
{
// This just lets you see ascii codes
info(strfmt("%1 - %2", char2num(conpeek(con, conlen(con)), i), substr(conpeek(con, conlen(con)), i, 1)));
}
}
答案 1 :(得分:0)
好像你正在阅读文件输入。为什么不首先避免犯罪角色?
如果使用AsciiIo
或TextIo
,您可以使用inRecordDelimiter接受文件的正确行尾分隔符。