StringCollection.st
changeset 22354 113a6a911eb5
parent 22278 dd1e56c2ad85
child 22573 0749ebab7a10
equal deleted inserted replaced
22353:5a2d40912637 22354:113a6a911eb5
     1 "{ Encoding: utf8 }"
       
     2 
       
     3 "
     1 "
     4  COPYRIGHT (c) 1989 by Claus Gittinger
     2  COPYRIGHT (c) 1989 by Claus Gittinger
     5 	      All Rights Reserved
     3 	      All Rights Reserved
     6 
     4 
     7  This software is furnished under a license and may be used
     5  This software is furnished under a license and may be used
   213     delimiter := Character cr.
   211     delimiter := Character cr.
   214 
   212 
   215     numberOfLines := aString occurrencesOf:delimiter.
   213     numberOfLines := aString occurrencesOf:delimiter.
   216     numberOfLines == 0 ifTrue:[
   214     numberOfLines == 0 ifTrue:[
   217         "/ check if it's a return-delimited string
   215         "/ check if it's a return-delimited string
   218         (aString occurrencesOf:(Character return)) > 0 ifTrue:[
   216         numberOfLines := aString occurrencesOf:(Character return).
       
   217         numberOfLines > 0 ifTrue:[
   219             delimiter := Character return.
   218             delimiter := Character return.
   220         ].
   219         ].
   221     ].
   220     ].
   222     aString last == delimiter ifFalse:[
   221     aString last == delimiter ifFalse:[
   223         numberOfLines := numberOfLines + 1.
   222         numberOfLines := numberOfLines + 1.
   229     1 to:numberOfLines do:[:lineNr |
   228     1 to:numberOfLines do:[:lineNr |
   230         stop := aString indexOf:delimiter startingAt:start.
   229         stop := aString indexOf:delimiter startingAt:start.
   231         stop == 0 ifTrue:[
   230         stop == 0 ifTrue:[
   232             self at:lineNr put:(aString copyFrom:start).
   231             self at:lineNr put:(aString copyFrom:start).
   233             self from:lineNr+1 to:numberOfLines put:''.
   232             self from:lineNr+1 to:numberOfLines put:''.
   234             ^ self.
   233             ^ self
   235         ].
   234         ].
   236 
   235 
   237         self at:lineNr put:(aString copyFrom:start to:stop-1).
   236         self at:lineNr put:(aString copyFrom:start to:stop-1).
   238         start := stop + 1
   237         start := stop + 1
   239     ]
   238     ]
   240 
   239 
   241     "Modified: / 25-07-2012 / 18:52:58 / cg"
   240     "Modified: / 25-07-2012 / 18:52:58 / cg"
   242     "Modified (format): / 13-02-2017 / 20:31:40 / cg"
   241     "Modified (format): / 13-02-2017 / 20:31:40 / cg"
       
   242     "Modified (format): / 14-11-2017 / 16:26:27 / mawalch"
   243 ! !
   243 ! !
   244 
   244 
   245 !StringCollection methodsFor:'copying'!
   245 !StringCollection methodsFor:'copying'!
   246 
   246 
   247 copyEmpty:size
   247 copyEmpty:size