Difference between revisions of "MID$ (statement)"

From QB64 Wiki
Jump to navigation Jump to search
imported>Clippy
m
m (Fix example highlighting/linking)
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
The '''MID$''' statement overwrites a portion of a previously defined [[STRING]].
The [[MID$]] statement substitutes one or more new characters for existing characters of a previously defined [[STRING]].






:::''Syntax:'' MID$(basestring$, start_position%[, bytes%]) = string_to_add$
{{PageSyntax}}
: [[MID$]]({{Parameter|baseString$}}, {{Parameter|startPosition%}}[, {{Parameter|bytes%}}]) = {{Parameter|replacementString$}}




 
{{PageDescription}}
* String value is any literal or variable [[STRING]] and/or [[ASCII]] character values.
* The {{Parameter|baseString$}} variable must exist and be large enough to contain the {{Parameter|replacementString$}}.
* Start position specifies the string character position to start the overwrite. Cannot be 0 or an [[ERROR Codes|Illegal function call error]] will occur!
* {{Parameter|startPosition%}} specifies the string character position to start the overwrite.
* The byte length is optional. Excess statement string characters or byte lenghts are ignored.
* {{Parameter|bytes%}} or number of characters is optional. Excess byte lenghts are ignored.
* The string value to be placed in the string should be as long as the byte length reserved.
* The {{Parameter|replacementString$}} 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.
* The length of the original string is not changed in any case. If {{Parameter|replacementString$}} is longer, it gets clipped.




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


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




 
{{PageSeeAlso}}
 
* [[MID$]] {{text|(function)}}
 
* [[LEFT$]], [[RIGHT$]]
''See also:''
* [[INSTR]], [[ASCII]],  [[STR$]], [[HEX$]], [[Bitmaps]] (example)
 
* [[MKI$]], [[MKL$]], [[MKS$]], [[MKD$]]
[[MID$]], [[INSTR]], [[ASCII]],  [[STR$]], [[HEX$]], [[Bitmaps]] (example)
 
[[MKI$]], [[MKL$]], [[MKS$]], [[MKD$]]
 




{{PageNavigation}}
{{PageNavigation}}

Latest revision as of 09:26, 23 April 2021

The MID$ statement substitutes one or more new characters for existing characters of a previously defined STRING.


Syntax

MID$(baseString$, startPosition%[, bytes%]) = replacementString$


Description

  • The baseString$ variable must exist and be large enough to contain the replacementString$.
  • startPosition% specifies the string character position to start the overwrite.
  • bytes% or number of characters is optional. Excess byte lenghts are ignored.
  • The replacementString$ should be as long as the byte length reserved.
  • The length of the original string is not changed in any case. If replacementString$ is longer, it gets clipped.


Examples

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

text$ = "The cats and dogs were playing, even though dogs don't like cats." PRINT text$ 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" ' change "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 text$

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


See also



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