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



{{PageSyntax}}
: [[MID$]]({{Parameter|baseString$}}, {{Parameter|startPosition%}}[, {{Parameter|bytes%}}]) = {{Parameter|replacementString$}}


{{PageDescription}}
* The {{Parameter|baseString$}} variable must exist and be large enough to contain the {{Parameter|replacementString$}}.
* {{Parameter|startPosition%}} specifies the string character position to start the overwrite.
* {{Parameter|bytes%}} or number of characters is optional. Excess byte lenghts are ignored.
* The {{Parameter|replacementString$}} should be as long as the byte length reserved.
* 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.

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


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


{{PageNavigation}}
