Smalltalk 在哪个对象中保存大量文本?

Smalltalk 在哪个对象中保存大量文本?,smalltalk,pharo,seaside,Smalltalk,Pharo,Seaside,我正在计划一个海滨应用程序来保存文本,一个实例可能高达,比如说,5Mb。什么样的物体最适合这个 我还想对本文进行一些迭代 谢谢,文斯 编辑:感谢您迄今为止的回复。该文件是一个CSV文件,从传统金融系统生成需要约40分钟,因此必须预先生成和存储。每一行都是客户记录,我需要在客户登录时提取每一行并使用这些值。客户访问是不可预测的,与传统系统交互以动态生成每一行是最后的选择。使用外部文本文件和特定类的某个实例作为该文件的表示形式。使用对象的oop作为文件名 使用外部文本文件和特定类的某个实例作为该文件

我正在计划一个海滨应用程序来保存文本,一个实例可能高达,比如说,5Mb。什么样的物体最适合这个

我还想对本文进行一些迭代

谢谢,文斯


编辑:感谢您迄今为止的回复。该文件是一个CSV文件,从传统金融系统生成需要约40分钟,因此必须预先生成和存储。每一行都是客户记录,我需要在客户登录时提取每一行并使用这些值。客户访问是不可预测的,与传统系统交互以动态生成每一行是最后的选择。

使用外部文本文件和特定类的某个实例作为该文件的表示形式。使用对象的oop作为文件名

使用外部文本文件和特定类的某个实例作为该文件的表示形式。使用对象的oop作为文件名

考虑到生成文件需要那么长的时间,并且您以后需要或多或少地随机访问该文件,我会选择解析该文件,然后将结构化数据保存在内存中


您可以使用Squeaksource上的CSV解析器项目。它将为您可以使用的CSV记录创建一个结构化对象树。

鉴于生成文件需要很长时间,并且您以后或多或少需要随机访问该文件,我会选择解析该文件,并在以后将结构化数据保留在内存中


您可以使用Squeaksource上的CSV解析器项目。它将创建一个结构化的CSV记录对象树,供您使用。

正如Johan所说,只需使用客户集合,并从CSV中填充即可。根据您的访问需求,您可以使用字典或OrderedCollection来保存它。

正如Johan所说,只需使用客户集合,并从CSV中填充即可。根据您的访问需要,您可以使用字典或OrderedCollection来保存它。

5兆不算什么。别担心

如果您不能将这些CSV记录具体化为对象(在解析和实例化它们之后),那么字符串甚至流的集合就可以了

如果您需要键控查找,那么字典或LookupTable就可以完成这项工作

我的内存中有100兆的文本数据(100万行),甚至可以毫无问题地保存在图像中(图像保存)


问候。

5兆欧不算什么。别担心

如果您不能将这些CSV记录具体化为对象(在解析和实例化它们之后),那么字符串甚至流的集合就可以了

如果您需要键控查找,那么字典或LookupTable就可以完成这项工作

我的内存中有100兆的文本数据(100万行),甚至可以毫无问题地保存在图像中(图像保存)


关于。

有没有任何理由可以排除字符串?请更具体地说明文本中的内容您打算用什么做什么?为什么是5Mb?是否有任何理由可以排除字符串?更具体地说,文本中有什么内容?您打算用什么做?为什么是5Mb?注意Squeak asOOp上返回的是非唯一的12位对象哈希。注意Squeak asOOp上返回的是非唯一的12位对象哈希。我会试试这个。感谢您的帮助。我们最近使用了此软件包,并对其进行了一些修复。但是,我们无法上传它们,因为我们无法联系项目管理员。如果你遇到问题,让我知道,我可以给你发送最新版本。你好,约翰。我尝试了一下,删除了不推荐使用的选择器并更新了语法,但由于UTF8编码问题,我停了下来;“错误:检测到无效的utf8输入”。我想尝试一下您的更改,我会将其作为单独的问题/答案发布,以便其他人可能会发现它很有用。VinceYou可能只需要使用不同的流,因为您的文件将不采用utf8编码。查看TextConverter类。我目前正在寻找一个不同的repo.Hi发布CSV包。是的,谢谢,我已经下载了。再次感谢你的出色工作,约翰。VinceI会试试这个。感谢您的帮助。我们最近使用了此软件包,并对其进行了一些修复。但是,我们无法上传它们,因为我们无法联系项目管理员。如果你遇到问题,让我知道,我可以给你发送最新版本。你好,约翰。我尝试了一下,删除了不推荐使用的选择器并更新了语法,但由于UTF8编码问题,我停了下来;“错误:检测到无效的utf8输入”。我想尝试一下您的更改,我会将其作为单独的问题/答案发布,以便其他人可能会发现它很有用。VinceYou可能只需要使用不同的流,因为您的文件将不采用utf8编码。查看TextConverter类。我目前正在寻找一个不同的repo.Hi发布CSV包。是的,谢谢,我已经下载了。再次感谢你的出色工作,约翰。文斯