[squeak-dev] Upgrading serialized Morphs to new Paragraph stuff
Nicolas Cellier
nicolas.cellier.aka.nice at gmail.com
Thu Oct 3 17:48:46 UTC 2013
We could as well restore an empty MultiNewParagraph in *45Deprecated, then
let you becomeForward: each MultiNewParagraph into a NewParagraph
2013/10/3 Bob Arning <arning315 at comcast.net>
> That's one way. Another is 'save morph in file' from the metamenu.
> Question is which Chris used.
>
> On 10/3/13 6:33 AM, Edgar De Cleene wrote:
>
>
>
> On 10/3/13 6:55 AM, "Bob Arning" <arning315 at comcast.net> <arning315 at comcast.net> wrote:
>
>
> One questions is: how were they serialized?
>
> Cheers,
> Bob
>
>
> Here you have how to exchange serialized objects between Squeak, Pharo and
> Cuis.
>
> For Pharo 2.0 you need fileIn ReferenceStream logic first.
> Drag any .obj into World and you got a Inspector of on it.
>
> !Object methodsFor: 'objects from disk' stamp: 'edc 9/6/2008 19:40'!
> fileOutCompressed
>
> | unzipped zipped buffer aFileName |
> aFileName := self class name asFileName. "do better?"
> aFileName := UIManager default
> request: 'File name?' translated initialAnswer: aFileName.
> aFileName size == 0 ifTrue: [^ Beeper beep].
> Cursor write
> showWhile: [unzipped := RWBinaryOrTextStream on: ''.
> unzipped fileOutClass: nil andObject: self.
> unzipped reset.
> zipped := FileDirectory default newFileNamed: aFileName , 'obz'.
> zipped binary.
> zipped := GZipWriteStream on: zipped.
> buffer := ByteArray new: 50000.
> 'Compressing ' , self name
> displayProgressAt: Sensor cursorPoint
> from: 0
> to: unzipped size
> during: [:bar |
> [unzipped atEnd]
> whileFalse: [bar value: unzipped position.
> zipped
> nextPutAll: (unzipped nextInto: buffer)].
> zipped close.
> unzipped close]]! !
>
> !Object methodsFor: 'objects from disk' stamp: 'edc 6/20/2011 11:41'!
> saveOnFileNamed: aString
> "Ask the user for a filename and save myself on a
> ReferenceStream file. Writes out the version and class structure.
> The file is fileIn-able. UniClasses will be filed out.
> This save objects as .obj"
> | aFileName fileStream |
> aString isEmpty
> ifTrue: [^ self error: 'name is missing'].
> aFileName := aString , '.obj'.
> fileStream := ReferenceStream fileNamed: aFileName .
> fileStream nextPut: self.
> fileStream close.
> ! !
>
>
> !Object class methodsFor: 'objects from disk' stamp: 'edc 6/20/2011 12:16'!
> readAndInspect: inputStream
> | o rr |
> rr _ ReferenceStream on: inputStream.
> o _ rr next.
> rr close.
> o inspect! !
>
> !Object class methodsFor: '*services-extras' stamp: 'edc 2/14/2008 08:24'!
> fileReaderServicesForFile: fullName suffix: suffix
> | services |
> services _ OrderedCollection new.
>
> (fullName asLowercase endsWith: '.obj')
> ifTrue: [ services add: self serviceLoadObject ].
> ^services! !
>
> !Object class methodsFor: '*services-extras' stamp: 'edc 7/27/2008 08:11'!
> readCompressedObject: aFileStream
>
> self readAndInspect: (MultiByteBinaryOrTextStream with: (GZipReadStream
> on: aFileStream) upToEnd) reset! !
>
> !Object class methodsFor: '*services-extras' stamp: 'edc 7/27/2008 07:40'!
> serviceCompressedObject
> "Answer a service for opening a saved Object"
> ^ (SimpleServiceEntry
> provider: Object
> label: 'gz saved Object'
> selector: #readCompressedObject:
> description: 'open a gz Object'
> buttonLabel: 'object')
> argumentGetter: [:fileList |
>
> fileList readOnlyStream]! !
>
> !Object class methodsFor: '*services-extras' stamp: 'edc 2/14/2008 08:26'!
> serviceLoadObject
> "Answer a service for opening a saved Object"
>
> ^ (SimpleServiceEntry
> provider: self
> label: 'saved Object'
> selector: #readAndInspect:
> description: 'open a Object'
> buttonLabel: 'object')
> argumentGetter: [:fileList | fileList readOnlyStream]! !
>
>
>
>
>
>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20131003/1b4837f8/attachment.htm
More information about the Squeak-dev
mailing list
|