xHarbour Reference Documentation > Function Reference |
Merges the characters of two strings.
CharMix( <cString1>, <cString2> ) --> cResult
The function returns a string containing the characters of <cString1> at odd positions and those of <cString1> at even positions. This is useful, for example, to build a SaveScreen() string from a text string and video bytes.
The function operates until all characters of <cString1> are processed. It distinguishes the following situations:
1) | Len( <cString1> ) == Len( <cString2> ) |
When both input strings are of the same length, each character in <cString1> is followed by the corresponding character in <cString2>. |
2) | Len( <cString1> ) > Len( <cString2> ) |
When the last character of <cString2> is reached, the function starts over with the first character of <cString2>, until the last character of <cString1> is processed. |
3) | Len( <cString1> ) < Len( <cString2> ) |
The function returns when the last character of <cString1> is processed. |
See also: | CharEven(), CharOdd(), Expand(), ScreenMix() |
Category: | CT:String manipulation , Character functions |
Source: | ct\charmix.c |
LIB: | xhb.lib |
DLL: | xhbdll.dll |
// The example manipulates a savescreen string for changing // the color periodically until a key is pressed PROCEDURE Main LOCAL cScreen, cText, cVideo CLS @ 2,2 SAY "Changing video bytes" COLOR "W+/B" cScreen := SaveScreen( 2, 2, 2, 22 ) cText := CharOdd( cScreen ) cVideo := Chareven( cScreen ) DO WHILE Inkey(.5) == 0 cVideo := CharXOR( cVideo, chr(8) ) cScreen := CharMix( cText, cVideo ) RestScreen( 2, 2, 2, 22, cScreen ) ENDDO RETURN
http://www.xHarbour.com