Changeset 118


Ignore:
Timestamp:
Apr 26, 2007, 1:54:34 PM (18 years ago)
Author:
RBRi
Message:

substringFrom added

Location:
trunk/NewView
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/NewView/StringUtilsUnit.pas

    r110 r118  
    3939  // prefices all occurences of one of the chars in aStringWithChars with anEscape char
    4040  // if the escapeChar itself is found, then it is doubled
    41   Function StrEscapeAllCharsBy(Const aReceiver: String; const aSetOfChars: TSetOfChars; const anEscapeChar: char): String;
     41  Function StrEscapeAllCharsBy(const aReceiver: String; const aSetOfChars: TSetOfChars; const anEscapeChar: char): String;
    4242
    4343  // Extract all fields in a String given a set of delimiter characters and
     
    4646  //     StrExtractStrings('1x2x3\x4', 'x', '\') ->
    4747  //     returns 4 strings: '1', '', '2' and '3x4'
    48   Procedure StrExtractStrings(Var aResult : TStrings; Const aReceiver: String; const aSetOfChars: TSetOfChars; const anEscapeChar: char);
     48  Procedure StrExtractStrings(Var aResult : TStrings; const aReceiver: String; const aSetOfChars: TSetOfChars; const anEscapeChar: char);
    4949
    5050  // same as StrExtractStrings but ignores empty strings
    51   Procedure StrExtractStringsIgnoreEmpty(Var aResult : TStrings; Const aReceiver: String; const aSetOfChars: TSetOfChars; const anEscapeChar: char);
     51  Procedure StrExtractStringsIgnoreEmpty(Var aResult : TStrings; const aReceiver: String; const aSetOfChars: TSetOfChars; const anEscapeChar: char);
    5252
    5353  // removes all occurences of char from aSetOfChars from the beginning
     
    7474  // Returns a copy of the string including all characters until one from aSetOfChars found
    7575  Function StrLeftUntil(const aReceiver: String; const aSetOfChars: TSetOfChars) : String;
     76
     77  // Returns a copy of the string starting at aPos
     78  Function StrSubstringFrom(const aReceiver: String; const aPos : Integer) : String;
    7679
    7780  // returns true if the String starts with the provided one
     
    113116  // case insensitive
    114117  Function CaseInsensitivePos(const aPart: String; const aString: String ): longint;
     118
    115119
    116120  // --------------------
     
    448452
    449453
     454  Function StrSubstringFrom(const aReceiver: String; const aPos : Integer) : String;
     455  Begin
     456    Result := copy(aReceiver, aPos, length(aReceiver) - aPos + 1);
     457  end;
     458
     459
    450460  Function StrStartsWith(const aReceiver: String; const aStartString: String) : Boolean;
    451461  Var
  • trunk/NewView/unittests/StringUtilsUnitTests.pas

    r110 r118  
    950950
    951951    assertEqualsString('testStrLeftUntil', 'abcx', tmpResult);
     952  END;
     953
     954
     955  // -------------------------------------------------------------------
     956
     957
     958  PROCEDURE testStrSubstringFrom_Empty;
     959  VAR
     960    tmpResult : String;
     961  BEGIN
     962    tmpResult := StrSubstringFrom('', 1);
     963
     964    assertEqualsString('testStrSubstringFrom_Empty', '', tmpResult);
     965  END;
     966
     967
     968  PROCEDURE testStrSubstringFrom_EmptyZeroPos;
     969  VAR
     970    tmpResult : String;
     971  BEGIN
     972    tmpResult := StrSubstringFrom('', 0);
     973
     974    assertEqualsString('testStrSubstringFrom_EmptyZeroPos', '', tmpResult);
     975  END;
     976
     977
     978  PROCEDURE testStrSubstringFrom_EmptyNegativePos;
     979  VAR
     980    tmpResult : String;
     981  BEGIN
     982    tmpResult := StrSubstringFrom('', -4);
     983
     984    assertEqualsString('testStrSubstringFrom_EmptyNegativePos', '', tmpResult);
     985  END;
     986
     987
     988  PROCEDURE testStrSubstringFrom_FullCopy;
     989  VAR
     990    tmpResult : String;
     991  BEGIN
     992    tmpResult := StrSubstringFrom('abcd', 1);
     993
     994    assertEqualsString('testStrSubstringFrom_FullCopy', 'abcd', tmpResult);
     995  END;
     996
     997
     998  PROCEDURE testStrSubstringFrom_ZeroPos;
     999  VAR
     1000    tmpResult : String;
     1001  BEGIN
     1002    tmpResult := StrSubstringFrom('abcd', 0);
     1003
     1004    assertEqualsString('testStrSubstringFrom_ZeroPos', 'abcd', tmpResult);
     1005  END;
     1006
     1007
     1008  PROCEDURE testStrSubstringFrom_NegativePos;
     1009  VAR
     1010    tmpResult : String;
     1011  BEGIN
     1012    tmpResult := StrSubstringFrom('abcd', -4);
     1013
     1014    assertEqualsString('testStrSubstringFrom_NegativePos', 'abcd', tmpResult);
     1015  END;
     1016
     1017
     1018  PROCEDURE testStrSubstringFrom_ToBigPos;
     1019  VAR
     1020    tmpResult : String;
     1021  BEGIN
     1022    tmpResult := StrSubstringFrom('abcd', 11);
     1023
     1024    assertEqualsString('testStrSubstringFrom_ToBigPos', '', tmpResult);
     1025  END;
     1026
     1027
     1028  PROCEDURE testStrSubstringFrom;
     1029  VAR
     1030    tmpResult : String;
     1031  BEGIN
     1032    tmpResult := StrSubstringFrom('abcd', 2);
     1033
     1034    assertEqualsString('testStrSubstringFrom', 'bcd', tmpResult);
    9521035  END;
    9531036
     
    22102293    result.add(@testStrLeftUntil_UnusedDelimiter);
    22112294    result.add(@testStrLeftUntil);
     2295
     2296    result.add(@testStrSubstringFrom_Empty);
     2297    result.add(@testStrSubstringFrom_EmptyZeroPos);
     2298    result.add(@testStrSubstringFrom_EmptyNegativePos);
     2299    result.add(@testStrSubstringFrom_FullCopy);
     2300    result.add(@testStrSubstringFrom_ZeroPos);
     2301    result.add(@testStrSubstringFrom_NegativePos);
     2302    result.add(@testStrSubstringFrom_ToBigPos);
     2303    result.add(@testStrSubstringFrom);
    22122304
    22132305    result.add(@testStrStartsWith_BothEmpty);
Note: See TracChangeset for help on using the changeset viewer.