WORDTOCHAR() Exchanges double characters for individual ones ------------------------------------------------------------------------------ Syntax WORDTOCHAR(<cDoubleCharacterList>,<cString>, <cCharacterlist>) --> cString Arguments <cDoubleCharacterList> Designates multiple 2-byte sequences which are exchanged for corresponding individual characters from the <cCharacterlist>. <cString> Designates the character string within which 2-byte sequences are exchanged for individual characters. <cCharacterlist> Designates a sequence of individual characters which correspond to 2-byte sequences in <cDoubleCharacterList> for replacement within <cString>. Returns WORDTOCHAR() returns the modified character string. Description When you use SOUNDEX algorithms, sequences of two characters must often be exchanged for a single other character. WORDTOCHAR() makes this process extremely simple and quick. The function processes the <cString> in 1-byte steps. The behavior after exchanging a sequence for a character is determined by CSETATMUPA(). If CSETATMUPA is .F., the search for more sequences continues after the exchanged characters. If CSETATMUPA is .T., the search for more sequences continues and includes the exchanged characters. Notes . The term "word" is not used here in the textual sense, but rather as it is used in assembler programming. A "word" consists of units of 16 bits, or more precisely, 2 bytes. . <cCharacterlist> can be shorter than <cDoubleCharacterList>. When this occurs, the function exchanges the sequences in <cDoubleCharacterList> that do not have corresponding sequences in <cCharacterlist> for the last sequence in <cDoubleCharacterList>. Examples . This example shows a simple replacement: ? WORDTOCHAR("aa", "Xaaaa", "a") // "Xaa" . This example shows WORDTOCHAR() in conjunction with CSETATMUPA(): CSETATMUPA(.F.) // Multi pass off ? WORDTOCHAR("aa", "Xaaaa", "a") // "Xaa" CSETATMUPA(.T.) // Multi pass on ? WORDTOCHAR("aa", "Xaaaa", "a") // "Xa"
See Also: CSETATMUPA() WORDREPL() CHARREPL()
Introduction ADDASCII() Adds a value to each ASCII code in a string AFTERATNUM() Returns remainder of a string after nth appearance of sequence ASCIISUM() Finds sum of the ASCII values of all the characters of a string ASCPOS() Determines ASCII value of a character at a position in a string ATADJUST() Adjusts the beginning position of a sequence within a string ATNUM() Determines the starting position of a sequence within a string ATREPL() Searches for a sequence within a string and replaces it ATTOKEN() Finds the position of a token within a string BEFORATNUM() Returns string segment before the nth occurrence of a sequence CENTER() Centers a string using pad characters CHARADD() Adds the corresponding ASCII codes of two strings CHARAND() Links corresponding ASCII codes of paired strings with AND CHAREVEN() Returns characters in the even positions of a string CHARLIST() Lists each character in a string CHARMIRR() Mirrors characters within a string CHARMIX() Mixes two strings together CHARNOLIST() Lists the characters that do not appear in a string CHARNOT() Complements each character in a string CHARODD() Returns characters in the odd positions of a string CHARONE() Reduces adjoining duplicate characters in string to 1 character CHARONLY() Determines the common denominator between two strings CHAROR() Joins the corresponding ASCII code of paired strings with OR CHARPACK() Compresses (packs) a string CHARRELA() Correlates the character positions in paired strings CHARRELREP() Replaces characters in a string depending on their correlation CHARREM() Removes particular characters from a string CHARREPL() Replaces certain characters with others CHARSORT() Sorts sequences within a string CHARSPREAD() Expands a string at the tokens CHARSWAP() Exchanges all adjoining characters in a string CHARUNPACK() Decompresses (unpacks) a string CHARXOR() Joins ASCII codes of paired strings with exclusive OR operation CHECKSUM() Calculates the checksum for a character string (algorithm) COUNTLEFT() Counts a particular character at the beginning of a string COUNTRIGHT() Counts a particular character at the end of a string CRYPT() Encrypts and decrypts a string CSETATMUPA() Determines setting of the multi-pass mode for ATXXX() functions CSETREF() Determines whether reference sensitive functions return a value EXPAND() Expands a string by inserting characters JUSTLEFT() Moves characters from the beginning to the end of a string JUSTRIGHT() Moves characters from the end of a string to the beginning LIKE() Compares character strings using wildcard characters LTOC() Converts a logical value into a character MAXLINE() Finds the longest line within a string NUMAT() Counts the number of occurrences of a sequence within a string NUMLINE() Determines the number of lines required for string output NUMTOKEN() Determines the number of tokens in a string PADLEFT() Pads a string on the left to a particular length PADRIGHT() Pads a string on the right to a particular length POSALPHA() Determines position of first alphabetic character in a string POSCHAR() Replaces individual character at particular position in string POSDEL() Deletes characters at a particular position in a string POSDIFF() Finds the first position from which two strings differ POSEQUAL() Finds the first position at which two strings are the same POSINS() Inserts characters at a particular position within a string POSLOWER() Finds the position of the first lower case alphabetic character POSRANGE() Determines position of first character in an ASCII code range POSREPL() Replaces one or more characters from a certain position POSUPPER() Finds the position of the first uppercase, alphabetic character RANGEREM() Deletes characters that are within a specified ASCII code range RANGEREPL() Replaces characters within a specified ASCII code range REMALL() Removes characters from the beginning and end of a string REMLEFT() Removes particular characters from the beginning of a string REMRIGHT() Removes particular characters at the end of a string REPLALL() Exchanges characters at the beginning and end of a string REPLLEFT() Exchanges particular characters at the beginning of a string REPLRIGHT() Exchanges particular characters at the end of a string RESTTOKEN() Recreates an incremental tokenizer environment SAVETOKEN() Saves the incremental tokenizer environment to a variable SETATLIKE() Provides an additional search mode for all AT functions STRDIFF() Finds similarity between two strings (Levenshtein Distance) STRSWAP() Interchanges two strings TABEXPAND() Converts tabs to spaces TABPACK() Converts spaces in tabs TOKEN() Selects the nth token from a string TOKENAT() Determines the most recent TOKENNEXT() position within a string TOKENEND() Determines if more tokens are available in TOKENNEXT() TOKENINIT() Initializes a string for TOKENNEXT() TOKENLOWER() Converts initial alphabetic character of a token into lowercase TOKENNEXT() Provides an incremental tokenizer TOKENSEP() Provides separator before/after most recently retrieved TOKEN() TOKENUPPER() Converts the initial letter of a token into upper case VALPOS() Determines numerical value of character at particular position WORDONE() Reduces multiple appearances of double characters to one WORDONLY() Finds common denominator of 2 strings on double character basis WORDREPL() Replaces particular double characters with others WORDSWAP() Exchanges double characters lying beside each other in a string WORDTOCHAR() Exchanges double characters for individual ones