Difference between revisions of "MID$ (statement)"

From QB64 Wiki
Jump to navigation Jump to search
imported>Clippy
m
imported>Clippy
Line 1: Line 1:
The '''MID$''' statement specifies a position in a [[STRING]] to overwrite previous data.
The '''MID$''' statement overwrites a portion of a previously defined [[STRING]].






:::''Syntax:'' MID$(basestring$, start%, length%) = string_to_add$
:::''Syntax:'' MID$(basestring$, start_position%[, bytes%]) = string_to_add$






* String value is any literal or variable [[STRING]] or [[ASCII]] character value.
* String value is any literal or variable [[STRING]] and/or [[ASCII]] character values.
* Start specifies the string character to start and length reserves the space. Cannot be 0!
* Start position specifies the string character position to start the overwrite. Cannot be 0 or an [[ERROR Codes|Illegal function call error]] will occur!
* The string value to be placed in the string should be as long as the length reserved.
* The byte length is optional. Excess statement string characters or byte lenghts are ignored.
* The length of the original string is NOT changed in any case! Excess characters will not be in the string returned.
* The string value to be placed in the string should be as long as the byte length reserved.
* The length of the original string is NOT changed in any case! Excess characters will not be in the string value returned.




''Example:'' Using [[INSTR]] to locate the string positions and a [[MID$ (statement)|MID$]] statement to change the word.
''Example:'' Using [[INSTR]] to locate the string positions and a [[MID$ (statement)|MID$]] statement to change the words.


{{CodeStart}}
text$ = "The cats and dogs where playing, even though dogs don't like cats."
start% = 1          ' start cannot be 0 when used in the INSTR function!


:a$ = "The cats and dogs where playing, even though dogs don't like cats."
[[DO...LOOP|DO]]
:start = 1 ' start cannot be 0 when used in the INSTR function!
  position% = {{Cl|INSTR}}(start%, text$, "dog")
  IF position% THEN            ' when position is a value greater than 0
    {{Cl|MID$}}(text$, position%, 3) = "rat"  ' changes "dog" to "rat" when found
    start% = position% + 1     ' advance one position to search rest of string
  END IF
LOOP UNTIL position% = 0       ' no other matches found
PRINT a$
{{CodeEnd}}




:[[DO...LOOP|DO]]
{{OutputStart}}
:: position = [[INSTR]](start, a$, "dog")
The cats and rats were playing, even though rats don't like cats.
:: IF position THEN ' position is a value greater than 0
{{OutputEnd}}
::: '''MID$'''(a$, position, 3) = "rat" ' changes "dog" to "rat" when found
::: start = position + 1 ' advance one position to search rest of string
:: END IF
:LOOP UNTIL position = 0 ' no other matches found
: PRINT a$




''Screen Results:'' The cats and rats were playing, even though rats don't like cats.






''See also:''


[[MID$]], [[INSTR]], [[ASCII]],  [[STR$]], [[HEX$]], [[Bitmaps]] (example)


[[MKI$]], [[MKL$]], [[MKS$]], [[MKD$]]


''See also:'' [[MKI$]], [[MKL$]], [[MKS$]], [[MKD$]], [[STR$]], [[HEX$]], [[INSTR]], [[Bitmaps]], [[ASCII]]




 
{{PageNavigation}}
==Navigation:==
 
[[Keyword_Reference_-_Alphabetical|Go to Keyword Reference - Alphabetical]]
 
[[Keyword Reference - By usage|Go to Keyword Reference - By usage]]

Revision as of 22:41, 20 June 2010

The MID$ statement overwrites a portion of a previously defined STRING.


Syntax: MID$(basestring$, start_position%[, bytes%]) = string_to_add$


  • String value is any literal or variable STRING and/or ASCII character values.
  • Start position specifies the string character position to start the overwrite. Cannot be 0 or an Illegal function call error will occur!
  • The byte length is optional. Excess statement string characters or byte lenghts are ignored.
  • The string value to be placed in the string should be as long as the byte length reserved.
  • The length of the original string is NOT changed in any case! Excess characters will not be in the string value returned.


Example: Using INSTR to locate the string positions and a MID$ statement to change the words.

text$ = "The cats and dogs where playing, even though dogs don't like cats." start% = 1 ' start cannot be 0 when used in the INSTR function! DO position% = INSTR(start%, text$, "dog") IF position% THEN ' when position is a value greater than 0 MID$(text$, position%, 3) = "rat" ' changes "dog" to "rat" when found start% = position% + 1 ' advance one position to search rest of string END IF LOOP UNTIL position% = 0 ' no other matches found PRINT a$


The cats and rats were playing, even though rats don't like cats.



See also:

MID$, INSTR, ASCII, STR$, HEX$, Bitmaps (example)

MKI$, MKL$, MKS$, MKD$




Navigation:
Keyword Reference - Alphabetical
Keyword Reference - By Usage
Main Wiki Page