# HG changeset patch # User Claus Gittinger # Date 1558177754 -7200 # Node ID f98cb762d159d3f3c46e5ed75dc1eb680d78ffbd # Parent f4f8254bfb3b33733994fa6ddce0f19a30d3ea1e #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: diff -r f4f8254bfb3b -r f98cb762d159 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'!