#FEATURE by cg
authorClaus Gittinger <cg@exept.de>
Sat, 18 May 2019 13:09:14 +0200
changeset 4945 f98cb762d159
parent 4944 f4f8254bfb3b
child 4946 ccd655ac6fc1
#FEATURE by cg class: PrintfScanf class new scanf format: %n to read any number comment/format in: #format_scanf #sscanf:fromString: changed: #scanArgFrom:to:format:
PrintfScanf.st
--- a/PrintfScanf.st	Fri May 17 13:10:48 2019 +0200
+++ b/PrintfScanf.st	Sat May 18 13:09:14 2019 +0200
@@ -286,6 +286,7 @@
         's'     string
         'u'     integer
         'x'     base-16 hex
+        'n'     any number
 
     Length prefix:
 
@@ -1050,6 +1051,9 @@
     ('Bb' includes:char) ifTrue:[
         final value:(Integer readFrom:data radix:2)
     ].
+    ('Nn' includes:char) ifTrue:[
+        final value:(Number readFrom:data)
+    ].
 
     "
      '%d %x' sscanf:'1234 ff00'
@@ -1061,10 +1065,14 @@
      ('%hf' sscanf:'1234') first
      ('%Lf' sscanf:'1234') first
      ('%LLf' sscanf:'1234') first
+     ('%n' sscanf:'1234') first
+     ('%n' sscanf:'1234.456') first
+     ('%n %n' sscanf:'1234.456 123') 
     "
 
     "Created: / 19-06-2017 / 15:53:28 / cg"
     "Modified (comment): / 14-07-2017 / 11:31:01 / cg"
+    "Modified (comment): / 18-05-2019 / 13:08:30 / Claus Gittinger"
 ! !
 
 !PrintfScanf class methodsFor:'scanning'!
@@ -1104,7 +1112,12 @@
 
     ^ self scanf:formatString fromStream:(ReadStream on:aString)
 
+    "
+     self sscanf:'%d %d %d' fromString:'123 45 999'
+    "
+
     "Modified: / 19-06-2017 / 15:53:59 / cg"
+    "Modified (comment): / 18-05-2019 / 13:01:28 / Claus Gittinger"
 ! !
 
 !PrintfScanf methodsFor:'helpers'!