LOC: Difference between revisions

From QB64 Phoenix Edition Wiki
Jump to navigation Jump to search
(Created page with "The LOC function returns the status of a serial (COM) port received buffer or the current byte position in an open file. {{PageSyntax}} : {{Parameter|bytes%}} = LOC({{Parameter|fileOrPortNumber%}}) * {{Parameter|fileOrPortNumber%}} is the number used in the port OPEN AS statement. * Returns 0 if the buffer is empty. Any value above 0 indicates the COM port has received data. * Use it in conjunction with INPUT$ to get the data bytes received. * Can also be...")
Tag: visualeditor-switched
 
No edit summary
Line 14: Line 14:
{{PageExamples}}
{{PageExamples}}
''Example:'' Reading and writing from a COM port opened in Basic.
''Example:'' Reading and writing from a COM port opened in Basic.
{{CodeStart}} '' ''
{{CodeStart}}
{{Cl|OPEN}} "{{Cl|OPEN_COM|COM}}1: 9600,N,8,1,OP0" {{Cl|FOR (file statement)|FOR}} {{Cl|RANDOM}} {{Cl|AS}} #1 {{Cl|LEN}} = 2048 ' random mode = input and output
{{Cl|OPEN}} "{{Cl|OPEN_COM|COM}}1: 9600,N,8,1,OP0" {{Cl|FOR (file statement)|FOR}} {{Cl|RANDOM}} {{Cl|AS}} #1 {{Cl|LEN}} = 2048 ' random mode = input and output
   {{Cl|DO}}: t$ = {{Cl|INKEY$}} ' get any transmit keypresses from user
   {{Cl|DO}}: t$ = {{Cl|INKEY$}} ' get any transmit keypresses from user
Line 22: Line 22:
       r$ = {{Cl|INPUT$}}(bytes%, 1)          ' get bytes in the receive buffer
       r$ = {{Cl|INPUT$}}(bytes%, 1)          ' get bytes in the receive buffer
       {{Cl|PRINT}} r$; ' print byte strings consecutively to screen"
       {{Cl|PRINT}} r$; ' print byte strings consecutively to screen"
     {{Cl|END IF}}  
     {{Cl|END IF}}
   {{Cl|LOOP}} {{Cl|UNTIL}} t$ = {{Cl|CHR$}}(27) 'escape key exit
   {{Cl|LOOP}} {{Cl|UNTIL}} t$ = {{Cl|CHR$}}(27) 'escape key exit
{{Cl|CLOSE}} # '' ''
{{Cl|CLOSE}} #
{{CodeEnd}}
{{CodeEnd}}



Revision as of 01:58, 23 January 2023

The LOC function returns the status of a serial (COM) port received buffer or the current byte position in an open file.


Syntax

bytes% = LOC(fileOrPortNumber%)


  • fileOrPortNumber% is the number used in the port OPEN AS statement.
  • Returns 0 if the buffer is empty. Any value above 0 indicates the COM port has received data.
  • Use it in conjunction with INPUT$ to get the data bytes received.
  • Can also be used to read the current position in a file routine. See SEEK.


Examples

Example: Reading and writing from a COM port opened in Basic.

OPEN "COM1: 9600,N,8,1,OP0" FOR RANDOM AS #1 LEN = 2048 ' random mode = input and output
  DO: t$ = INKEY$ ' get any transmit keypresses from user
    IF LEN(t$) THEN PRINT #1, t$ ' send keyboard byte to transmit buffer
    bytes% = LOC(1) ' bytes in buffer
    IF bytes% THEN ' check receive buffer for data"
      r$ = INPUT$(bytes%, 1)          ' get bytes in the receive buffer
      PRINT r$; ' print byte strings consecutively to screen"
    END IF
  LOOP UNTIL t$ = CHR$(27) 'escape key exit
CLOSE #


See also


Navigation:
Main Page with Articles and Tutorials
Keyword Reference - Alphabetical
Keyword Reference - By usage
Report a broken link