COMPRES$ PowerBASIC Function |
COMPRES$ function evaluates to its first parameter with all successive occurrences of characters specified by the second parameter being compressed to a single occurrence. Special case is taken care of (see function description below). If the second parameter is empty, all successive duplicate characters of the first parameter get compressed. COMPRES$ Source Program Debugging program Debugging logout |
' COMPRES$(0.0) Compress Character String 12/22/1988-02/01/2010 ' ------------------------------------------------------------------------------ ' Copyright (C) 1988-2010 by Vladimir Veytsel www.davar.net ' Type ------------------------------------------------------------------------- ' Function ' Description ------------------------------------------------------------------ ' COMPRES$ function returns its first parameter with all successive ' occurrences of characters specified by the second parameter being ' compressed to a single occurrence. ' Parameters ------------------------------------------------------------------- ' Strng$ - Character string to be compressed. ' Chars$ - Characters, all successive occurrences of which ' should to be compressed to a single occurrence. ' Value ------------------------------------------------------------------------ ' Character string compressed as specified by Chars$ parameter. ' Note ------------------------------------------------------------------------- ' Empty Chars$ parameter specifies compression of ALL successive ' duplicate characters of the string. ' Examples --------------------------------------------------------------------- ' COMPRES$("" ,"" )="" ' COMPRES$("ABBCCC","" )="ABC" ' COMPRES$("ABBCCC","A" )="ABBCCC" ' COMPRES$("ABBCCC","B" )="ABCCC" ' COMPRES$("ABBCCC","C" )="ABBC" ' COMPRES$("ABBCCC","ABC")="ABC" ' Start Function --------------------------------------------------------------- DEFINT A-Z ' All defaulted variables are integer FUNCTION COMPRES$(Strng$,Chars$) ' Check Special Case (Compression Is Impossible) ------------------------------- IF (LEN(Strng$)<2) THEN COMPRES$=Strng$ EXIT FUNCTION END IF ' Form Compressed String (with the Exception of Last Symbol) ------------------- Chars_Lngth=LEN(Chars$) FOR I=1 TO LEN(Strng$)-1 Curr_Str_Symb$=MID$(Strng$,I ,1) Next_Str_Symb$=MID$(Strng$,I+1,1) IF (( Curr_Str_Symb$<>Next_Str_Symb$)OR _ ((Curr_Str_Symb$= Next_Str_Symb$)AND _ (Chars_Lngth>0) AND _ (INSTR(Chars$,Curr_Str_Symb$)=0))) THEN Work_Str$=Work_Str$+Curr_Str_Symb$ END IF NEXT I ' Return Function Value to the Point of Invocation ----------------------------- COMPRES$=Work_Str$+RIGHT$(Strng$,1) ' Finish Function -------------------------------------------------------------- END FUNCTION
COMPRES$ Debugging Program Source program Debugging logout |
' COMPRES$(0.0) Compress Character String 05/29/1997-02/01/2010 ' ------------------------------------------------------------------------------ #INCLUDE "COMPRES" FUNCTION PBMAIN PRINT "COMPRES$(0.0) Compress Character String ";DATE$; PRINT " ";LEFT$(TIME$,5) PRINT STRING$(59,"-") PRINT PRINT "COMPRES$('' ,'' )='"; _ COMPRES$("" ,"" ); "'" PRINT "COMPRES$('ABBCCC','' )='"; _ COMPRES$("ABBCCC","" ); "'" PRINT "COMPRES$('ABBCCC','A' )='"; _ COMPRES$("ABBCCC","A" ); "'" PRINT "COMPRES$('ABBCCC','B' )='"; _ COMPRES$("ABBCCC","B" ); "'" PRINT "COMPRES$('ABBCCC','C' )='"; _ COMPRES$("ABBCCC","C" ); "'" PRINT "COMPRES$('ABBCCC','ABC')='"; _ COMPRES$("ABBCCC","ABC"); "'" END FUNCTION
COMPRES$ Debugging Logout Source program Debugging program |
COMPRES$(0.0) Compress Character String 02-02-2010 17:58 ----------------------------------------------------------- COMPRES$('' ,'' )='' COMPRES$('ABBCCC','' )='ABC' COMPRES$('ABBCCC','A' )='ABBCCC' COMPRES$('ABBCCC','B' )='ABCCC' COMPRES$('ABBCCC','C' )='ABBC' COMPRES$('ABBCCC','ABC')='ABC' |
View [and save] COMPRES.BAS text View [and save] ZCOMPRES.BAS text (Use [Back] button or [Alt]+[CL] to return here from the viewed text) Copyright © 1988–2010 by Go to: Davar site entry | Site contents | Site index | Personal Computer | PowerBASIC | Text top |