Winput()
 
Reads a number of wide-characters from console or file

Syntax

Declare Function WInput( ByVal num As Integer ) As WString
Declare Function WInput( ByVal num As Integer, ByVal filenum As Long = 0 ) As WString

Usage

result = WInput( num [, [#]filenum } )

Parameters

num
Number of characters to read.
filenum
File number of bound file or device.

Return Value

Returns a WString of the characters read.

Description

Reads a number of wide-characters from the console, or a bound file/device specified by filenum.

The first version waits for and reads n wide characters from the keyboard buffer. Extended keys are not read. The characters are not echoed to the screen.

The second version waits for and reads n wide characters from a file or device. The file position is updated.

Note: FreeBASIC does not currently support reading wide-characters from the console.

Note: Using Winput() is dedicated to Input Access file mode, but it is also allowed in Binary/Random Access file mode with some restrictions on the values of num (for random mode, num must be equal to the record length set by the LEN clause (or implicit value) in the OPEN statement).

Example

Dim char As WString * 2

Dim filename As String, enc As String
Dim f As Long

Line Input "Please enter a file name: ", filename
Line Input "Please enter an encoding type (optional): ", enc
If enc = "" Then enc = "ascii"

f = FreeFile
If Open(filename For Input Encoding enc As #f) = 0 Then
    
    Print "Press space to read a character from the file, or escape to exit."
    
    Do
        
        Select Case Input(1)
        
        Case " " 'Space
            
            If EOF(f) Then
                
                Print "You have reached the end of the file."
                Exit Do
                
            End If
            
            char = WInput(1, f)
            Print char & " (char no " & Asc(char) & ")"
            
        Case Chr(27) 'Escape
            
            Exit Do
            
        End Select
        
    Loop
    
    Close #f
    
Else
    
    Print "There was an error opening the file."
    
End If

Dialect Differences

  • Not available in the -lang qb dialect.

Differences from QB

  • QB does not support Unicode

See also