我正在尝试在smalltalk(visualworks)中读取和处理csv文件的内容,但是似乎很难将字符串拆分成数组。下面是我已经能够开始工作的代码。我所缺少的是将myLine变量(它是一个逗号分隔的字符串)的内容拆分为字符串数组以添加到TwoDList的内容。请帮助您提供有关如何解决此问题的任何信息。谢谢
SpreadsheetReadCSV: inFilename
|inStream myLine rcnt|
rcnt := 0.
" scan thru the text lines, using a traditional i/o loop "
inStream := (inFilename asFilename) readStream .
[ inStream atEnd ] whileFalse: [
rcnt := rcnt + 1.
myLine := inStream upTo: Character cr.
"Process the commadelimited string here"
].
inStream inspect.
inStream close.
^myLine.
最佳答案
1)您也可以将字符串转换为流,因此可以使用与将文件解析为行相同的技术:
myLine := (inStream upTo: Character cr) readStream.
[ myLine atEnd ] whileFalse: [ | myCell |
myCell := myLine upTo: $,.
"Do whatever with the cell" ]
2)您可以使用tokensBasedOn将字符串拆分为多个部分:
myLine tokensBasedOn: $,
关于smalltalk - 在Smalltalk中,如何读取和处理CSV文件的内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9668506/