Oi Elias,
um forma fácil pode ser criar uma clase que corresponda a cada linha do .csv
por exemplo:
Object
CsvRecord
ahí podes colocar um mensagem de clase para instanciar eles a partir do
arquivo.
Seria algo tipo:
CsvRecord class>>fromFilename: aString
"Answers the CvsRecords that can be created based from <aString>
filename."
| fileStream |
[fileStream := FileStream fileNamed: aString.
self collectCsvRecordsFrom: fileStream] ensure: [ fileStream close]
logo implementando #collectCsvRecordsFrom: ...
CsvRecord class>>collectCsvRecordsFrom: aStream
"Returns a collection of CvsRecords parsed from aStream."
| col |
col := OrderedCollection new.
[aStream atEnd] whileFalse:[col add:(self fromCvsLine: aStream nextLine
separator: $; )].
^ col
e implementando #fromCvsLine:separator: ...
CsvRecord class>>fromCvsLine: aString separator: aCharacter
"Returns an instance of the receiver,
created parsing aString considering aCharacter as separators."
^ self newFromStrings: (aString subStrings: (Array with: aCharacter))
Ahí tu podes implementar uma subclase de CsvRecord que reflita o objeto que
debe
modelar esa fila. Para continuar com o exemplo vamos supor que seja Pessoa:
Nessa subclase tu coloca o método de clase #newFromStrings:
Pessoa class>>newFromStrings: someStrings
"Returns a new instance of the receiver based on someStrings."
^ super new
name: (someStrings at:1);
id: (someStrings at:2);
address: (someStrings at:3);
yourself
Uma outra estrategia para abordar este tipo de problemas é usar uma clase que
parsee basada no stream que lei do file e que te retorna as instancias criadas a
partir de
cada linha. Essa ultima estrategia teria vantagems se tu necessita "interpretar"
o
conteudo de formas diferentes. Nesse caso seria so ler o mesmo arquivo com
diferentes
parsers.
Lendo de novo tu email, em tu exemplo deve de ter alguma coisa de cotação não
é?
se é assim debe pensar bem no conceito que tem por trais do dado csv porque com
ST tu vai
poder modelar o registro mais poderias poder fazer coisas muito mais
interesantes do que
isso se tiver modelado o conceito correto (ainda que o dado continue a ser leido
de csv,
bases de dados o qualquer outra fonte). Dica: frecuentemente o "conceito
correto" mais
adecuado a ser modelado no mundo virtual não tem nada de criativo respeito ao
mundo real.
Qualquer duvida so falar !
Uma duvida, voces lá na UNIR ja testarom trabalhar com o Dolphin Smalltalk
Comunity Edition da Object Arts?
Sebastian Sastre
ssastre@...
Seaswork
Special Software Solutions
Este mensaje y sus adjuntos son confidenciales y de uso exclusivo para el
usuario a quien
esta dirigido. Puede contener información amparada por el secreto profesional.
Si Ud. no
es el destinatario especificado no debe copiar, enviar o utilizar ninguna parte
del mismo
y/o de sus adjuntos por ningún medio tecnológico. Las opiniones vertidas son
responsabilidad del autor y no son emitidas ni avaladas por SEASWORK a menos que
se
indique claramente lo contrario y que la identidad y autoridad del autor, para
comprometer
a nuestra empresa, puedan ser verificados. No se garantiza la integridad de los
mensajes
enviados por e-mail ni que los mismos sean enviados en termino, o que no
contengan errores
o virus. El emisor no aceptara responsabilidad por los errores, modificaciones u
omisiones
que resulten en el mensaje, bajo la hipótesis de que pudo ser modificado.
> -----Original Message-----
> From: st-br@yahoogroups.com [mailto:st-br@yahoogroups.com] On
> Behalf Of eliasreislima
> Sent: Monday, October 30, 2006 5:46 PM
> To: st-br@yahoogroups.com
> Subject: [st-br] Squeak Smalltalk
>
> Ola pessoal!
> Muito legal a iniciativa de vcs de reunirem o pessoal que
> trabalha com Smalltalk aqui no Brasil.. show mesmo.
> Atualmente sou bolsista num laboratorio da Universidade
> Federal de Rondonia - UNIR e trabalho com Squeak Smalltalk na
> implementacao de modelos socio-economicos com meu orientador.
> Inclusive nesse sentido, to com algumas duvidas... e gostaria
> de perguntar: como faco pra carregar 1 arquivo .csv no
> squeak? Na verdade, preciso carregar as variaveis do meu
> programa com os parametros contido nesse arquivo .csv.
>
> Grato.
>
>
>
>
>
>
> Yahoo! Groups Links
>
>
>
>