Difference between revisions of "MID$ (statement)"

From QB64 Wiki
Jump to navigation Jump to search
imported>Clippy
m (Fix example highlighting/linking)
 
(7 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 where playing, even though dogs don't like cats."
text$ = "The cats and dogs were playing, even though dogs don't like cats."
start% = 1         ' start cannot be 0 when used in the INSTR function!
{{Cl|PRINT}} text$
 
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 a$
{{Cl|PRINT}} text$ '' ''
{{CodeEnd}}
{{CodeEnd}}
{{OutputStart}}
{{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.
The cats and rats were playing, even though rats don't like cats.
{{OutputEnd}}
{{OutputEnd}}




 
{{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