[squeak-dev] Upgrading serialized Morphs to new Paragraph stuff

Bob Arning arning315 at comcast.net
Thu Oct 3 10:58:21 UTC 2013


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> 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/0992c932/attachment.htm


More information about the Squeak-dev mailing list