home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 18 REXX
/
18-REXX.zip
/
rexxalgo.zip
/
TESTALGO
/
NoUmlaut.CMD
< prev
next >
Wrap
OS/2 REXX Batch file
|
1997-08-11
|
6KB
|
139 lines
/* REXX *********************************************/
/* Frame for your Rexx program. Verify please! */
/* Program name: NoUmlaut */
/* Function : Translate the umlauts to double */
/* : bytes character string (ae, oe, */
/* : ue, ss) */
/* Syntax : */
/* Changes : */
/* */
/* Made use of GREED. 20 Dec 1996 / 10:33:16 JRK */
/****************************************************/
Parse Arg string
/*==============(Exception handling)================*/
Signal On Failure Name CLEANUP
Signal On Halt Name CLEANUP
Signal On Syntax Name CLEANUP
/*==========(Initialize RexxUtil support)===========*/
If RxFuncQuery('SysLoadFuncs') Then Do
Call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
Call SysLoadFuncs
End /* If RxFuncQuery... */
Say
Say Center( "( EXCLUDE MULTIPLE ITEMS )", 80, '*')
If Verify( string, 'äöüß', 'M' ) = 0 Then
string = '1ä 2Ä 3ü 4Ü 5ö 6Ö 7ß'
Say "NoUmlaut('"String"') -->" NoUmlaut( string )
Say "NoUmlaut('"String"', U) -->" NoUmlaut( string, 'U' )
Say
string = 'Jörg-Günter Meiß'
Say "NoUmlaut('"String"') -->" NoUmlaut( string )
Say "NoUmlaut('"String"', U) -->" NoUmlaut( string, 'U' )
Say
/*================(End this program)================*/
Call CharOut , "Press any key to exit "
Call LineIn
Exit
CLEANUP:
Say
Say 'GREED001E - Break, Failure or Syntax Error'
Exit
/******************************************************/
/* PROCEDURES */
/******************************************************/
/*============( Remove umlaut characters )============*/
/* 14 */
/* Name.......: NoUmlaut */
/* */
/* Function...: Replace umlaut characters with double */
/* character strings (ä -> ae, ö -> oe, */
/* ü -> ue, ß -> ss) */
/* */
/* Call parm..: _string - string with umlauts, */
/* _upper - upper case return string */
/* (optional) */
/* */
/* Returns....: translated string */
/* */
/* Syntax.....: */
/* tranStr = NoUmlaut( uString,['U'] ) */
/* */
/* Changes....: No */
/* */
/* Note.......: This function calls the function */
/* ReplaceUmlaut */
/* */
/* Author.....: Janosch R. Kowalczyk, 1996. */
/*====================================================*/
NoUmlaut: Procedure
Parse Arg _string, _upper
/*---------(Replace 'ä' 'Ä' by 'ae' 'Ae')-----------*/
_string = ReplaceUmlaut( _string, 'ä', 'ae' )
_string = ReplaceUmlaut( _string, 'Ä', 'Ae' )
/*---------(Replace 'ö' 'Ö' by 'oe' 'Oe')-----------*/
_string = ReplaceUmlaut( _string, 'ö', 'oe' )
_string = ReplaceUmlaut( _string, 'Ö', 'Oe' )
/*---------(Replace 'ü' 'Ü' by 'ue' 'Ue')-----------*/
_string = ReplaceUmlaut( _string, 'ü', 'ue' )
_string = ReplaceUmlaut( _string, 'Ü', 'Ue' )
/*-------------(Replace 'ß' by 'ss')----------------*/
_string = ReplaceUmlaut( _string, 'ß', 'ss' )
If Abbrev('UPPER', _upper, 1) = 1 Then
Return Translate( _string )
Return _string
/*========( Replace a string with an another )========*/
/* */
/* Name.......: ReplaceUmlaut */
/* */
/* Function...: Find all occurences of a substring */
/* and replace it by an another */
/* */
/* Call parm..: _string - input string, */
/* _origin - substring to be replaced */
/* _replStr - replace substring */
/* */
/* Returns....: translated string */
/* */
/* Syntax.....: */
/* tranStr = ReplaceUmlaut( String, origin, repl ) */
/* */
/* Changes....: No */
/* */
/* Note.......: This function is called from NoUmlaut */
/* and was developed for this purpose */
/* only. It isn't able to replace sub- */
/* strings that have same characters in */
/* both - origin and replace string! */
/* */
/* Author.....: Janosch R. Kowalczyk, 1996. */
/*====================================================*/
ReplaceUmlaut: Procedure
Parse Arg _string, _origin, _replStr
/*---( Same characters in the input and output strings )---*/
If Verify( _origin, _replStr, 'M' ) > 0 Then Return _string
/*-----(Replace umlaut by combined characters)-----*/
Do While Pos( _origin, _string ) > 0
Parse Var _string _prefix_ (_origin) _suffix_
_string = _prefix_ || _replStr || _suffix_
End
Return _string