<div dir="ltr">We could as well restore an empty MultiNewParagraph in *45Deprecated, then let you becomeForward: each MultiNewParagraph into a NewParagraph<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">
2013/10/3 Bob Arning <span dir="ltr"><<a href="mailto:arning315@comcast.net" target="_blank">arning315@comcast.net</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<font face="Georgia">That's one way. Another is 'save morph in file'
from the metamenu. Question is which Chris used.<br>
<br>
</font><div><div class="h5">
<div>On 10/3/13 6:33 AM, Edgar De Cleene
wrote:<br>
</div>
<blockquote type="cite">
<pre>
On 10/3/13 6:55 AM, "Bob Arning" <a href="mailto:arning315@comcast.net" target="_blank"><arning315@comcast.net></a> wrote:
</pre>
<blockquote type="cite">
<pre> One questions is: how were they serialized?
Cheers,
Bob
</pre>
</blockquote>
<pre>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]! !
</pre>
</blockquote>
<br>
</div></div></div>
<br><br>
<br></blockquote></div><br></div>