[fpc-pascal] Trim repeated whitespace from a string
Cox, Stuart TRAN:EX
Stuart.Cox at gov.bc.ca
Fri May 26 23:31:32 CEST 2006
Blaise Computing's "Power Tools Plus" offered just such a function in
their Unit_Str unit.
The __CvtStr function used the _REM_LEAD_WHITE_STR +
_REM_TRAIL_WHITE_STR + _REDUCE_WHITE_STR combination of constants to
achieve what you'd like to do.
I have the full source to all their units, but, as the copywrite says,
it's theirs. What are the legalities when a company goes kaput like
this? Is the source still only usable by those that bought a licence,
like me?
Header follows:
{***********************************************************************
}
{
}
{ UNIT_STR String Functions
}
{
}
{ This unit implements the POWER TOOLS PLUS String manipulation
}
{ routines. These routines enhance the string functions provided by
}
{ Turbo Pascal. All routines in this unit are functions which return
}
{ the generic string type.
}
{
}
{ Justification constants for __JustStr.
}
{
}
{ _LEFT_JUST_STR Left justify (constant)
}
{ _RIGHT_JUST_STR Right justify (constant)
}
{ _CENTER_STR Center within the field (constant)
}
{
}
{ String converstion constants for __CvtStr.
}
{
}
{ _REM_WHITE_STR Remove all white space (constant)
}
{ _REM_LEAD_WHITE_STR Remove leading white space (constant)
}
{ _REM_TRAIL_WHITE_STR Remove trailing white space (constant)
}
{ _REDUCE_WHITE_STR Reduce white space to one blank (constant)
}
{ _SAVE_QUOTED_STR Preserve quoted string (constant)
}
{ _TO_UPCASE_STR Convert to upper case (constant)
}
{ _TO_LOWCASE_STR Convert to lower case (constant)
}
{ _DISCARD_STR Discard excess characters (constant)
}
{
}
{ Date formatting constants
}
{
}
{ _USA_DT_STR USA format mm-dd-yy (constant)
}
{ _EURO_DT_STR European format dd-mm-yy (constant)
}
{ _YEAR_DT_STR Full year format mm-dd-yyyy (constant)
}
{ _MONT_DT_STR Month abbrv. format dd-mmm-yy (constant)
}
{ _FORM_DT_STR Formal date, e.g., June 1, 2988 (constant)
}
{
}
{ Time formatting constants
}
{
}
{ _12HOUR_STR Twelve hour time string, "1:25" (constant)
}
{ _INC_SEC_STR Include seconds, "13:25:30" (constant)
}
{ _INC_TIC_STR Include hundredths, "13:25.55" (constant)
}
{ _INC_AMPM_STR Append AM or PM, "13:25 PM" (constant)
}
{ _STANDARD_STR Standard time string, "1:25 PM" (constant)
}
{ _COMPLETE_STR Complete time string, "13:25:30.55" (constant)
}
{ _DOS_DIR_STR Used by __DirStr "1:25p" (constant)
}
{
}
{ _AMPM_STR The strings ' AM' and ' PM' (static)
}
{ _ap_STR The string 'ap' for DOS time (static)
}
{
}
{ _FMT_BUFLEN_STR Format text file buffer length (constant)
}
{
}
{ _StrMonths Array of month names (static)
}
{ _StrDays Array of day names (static)
}
{
}
{ _StrUSACh Date delimiter for USA (static)
}
{ _StrEuroCh Date delimiter for Europe (static)
}
{
}
{ _StrMoneyCh Money character (static)
}
{
}
{ __LeftStr Extract the left most characters of a string
}
{ __RightStr Extracts characters to the right end of a string
}
{ __RightMost Extract the right most characters of a string
}
{ __SubStr Extract substring from a string
}
{ __MidStr Place characters within a string
}
{ __FillStr Fill a string with copies of a character.
}
{ __XlateStr String translation
}
{ __JustStr Justify a string within a field.
}
{ __CvtStr Conversion of a string
}
{ __EnTabStr Return a string with spaces converted to tab characters
}
{ __DeTabStr Return a string with tabs expanded to space characters
}
{ __ToRadStr Return the radix representation of an integer type
}
{ __ToDecStr Return the unsigned decimal representation of an integer
}
{ __ToHexStr Return the hexadecimal representation of an integer
}
{ __Ptr2Str Return a string representing a pointer value
}
{ __DateStr Return the system date
}
{ __TimeStr Return the system time
}
{ __FormStr Format a string according to a mask
}
{ __Dt2StStr Convert month, day and year into a date string
}
{ __St2DtStr Extract the month, day, and year from a date string
}
{ __InitFStr Initialize a string format text file device.
}
{ __RetBfStr Return the formatted text buffer.
}
{ __DirStr Convert DOS directory information to a string
}
{ __Time2Str Make a string representing the time of day
}
{ __TFromStr Return the time from a string
}
{
}
{ Version 5.10 (C)Copyright Blaise Computing Inc. 1990
}
{_______________________________________________________________________
}
Stu
-----Original Message-----
From: fpc-pascal-bounces at lists.freepascal.org
[mailto:fpc-pascal-bounces at lists.freepascal.org] On Behalf Of Graeme
Geldenhuys
Sent: Fri, May 26, 2006 7:08 AM
To: FPC-Pascal users discussions
Subject: [fpc-pascal] Trim repeated whitespace from a string
Hi,
Anybody know of a function that can remove (normalize) a string by
remove all beginning and ending whitespace as well as replace all
repeated spaces with a single space. A bonus would be to remove tabs
and newlines chars as well, but that is not so important.
Example:
Before: " This is what it should look like. "
After: "This is what it should look like."
Any ideas? I see JavaScript has such a build-in function called
--
There's no place like 127.0.0.1
More information about the fpc-pascal
mailing list