Con2Str:
Con2Str将从容器中检索值列表,默认情况下用于comma (,)
分隔值。
client server public static str Con2Str(container c, [str sep])
如果未sep
指定参数值,则逗号字符将插入返回字符串中的元素之间。
可能的选项:
如果您希望空格作为默认分隔符,您可以将空格作为第二个参数传递给方法Con2Str
。
另一种选择是您还可以遍历容器fileRecord
以获取各个元素。
代码片段1:
下面的代码片段将文件内容加载到文本缓冲区中,并将回车符 ( \r
) 替换为换行符 ( \n
)。由于可能出现连续的换行符,该条件if (strlen(line) > 1)
将有助于跳过空字符串。
TextBuffer textBuffer;
str textString;
str clearText;
int newLinePos;
str line;
str field1;
str field2;
str field3;
counter row;
;
textBuffer = new TextBuffer();
textBuffer.fromFile(@"C:\temp\Input.txt");
textString = textBuffer.getText();
clearText = strreplace(textString, '\r', '\n');
row = 0;
while (strlen(clearText) > 0 )
{
row++;
newLinePos = strfind(clearText, '\n', 1, strlen(clearText));
line = (newLinePos == 0 ? clearText : substr(clearText, 1, newLinePos));
if (strlen(line) > 1)
{
field1 = substr(line, 1, 14);
field2 = substr(line, 15, 12);
field3 = substr(line, 27, 10);
info('Row ' + int2str(row) + ', Column 1: ' + field1);
info('Row ' + int2str(row) + ', Column 2: ' + field2);
info('Row ' + int2str(row) + ', Column 3: ' + field3);
}
clearText = (newLinePos == 0 ? '' : substr(clearText, newLinePos + 1, strlen(clearText) - newLinePos));
}
代码片段2:
您可以使用 File 宏而不是对值进行硬编码\r\n
,R
这表示读取模式。
TextIo inputFile;
container fileRecord;
str line;
str field1;
str field2;
str field3;
counter row;
;
inputFile = new TextIo(@"c:\temp\Input.txt", 'R');
inputFile.inFieldDelimiter("\r\n");
row = 0;
while (inputFile.status() == IO_Status::Ok)
{
row++;
fileRecord = inputFile.read();
line = con2str(fileRecord);
if (line != '')
{
field1 = substr(line, 1, 14);
field2 = substr(line, 15, 12);
field3 = substr(line, 27, 10);
info('Row ' + int2str(row) + ', Column 1: ' + field1);
info('Row ' + int2str(row) + ', Column 2: ' + field2);
info('Row ' + int2str(row) + ', Column 3: ' + field3);
}
}