Changeset 82
- Timestamp:
- Feb 25, 2007, 4:15:10 PM (18 years ago)
- Location:
- trunk/NewView
- Files:
-
- 5 added
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NewView/CmdLineParameterUnit.pas
r80 r82 78 78 PROCEDURE logDetails; 79 79 PROCEDURE parseCmdLine(aCmdLineString : String); 80 end; 81 82 FUNCTION getOwnHelpFileName: String; 80 FUNCTION getOwnHelpFileName: String; 81 end; 83 82 84 83 // returns a string containing the whole … … 90 89 uses 91 90 DOS, 92 ACLFileUtility;91 FileUtilsUnit; 93 92 94 93 PROCEDURE TCmdLineParameters.writeDetailsTo(aStrings : TStrings); … … 426 425 if fileNames = '' then 427 426 begin 428 tmpOwnHelpFileName := FindDefaultLanguageHelpFile('NewView');427 tmpOwnHelpFileName := getOwnHelpFileName; 429 428 if FileExists(tmpOwnHelpFileName) 430 429 then … … 605 604 606 605 607 FUNCTION getOwnHelpFileName: String; 606 FUNCTION TCmdLineParameters.getOwnHelpFileName: String; 607 var 608 tmpLanguage : String; 608 609 begin 609 result := FindDefaultLanguageHelpFile('NewView'); 610 tmpLanguage := getLanguage; 611 if tmpLanguage = '' then 612 begin 613 tmpLanguage := GetEnv(LanguageEnvironmentVar) 614 end; 615 616 result := FindDefaultLanguageHelpFile('NewView', tmpLanguage); 610 617 end; 611 618 -
trunk/NewView/DebugUnit.pas
r76 r82 60 60 61 61 Implementation 62 62 63 uses 63 64 BseDos, -
trunk/NewView/FileDialogForm.pas
r32 r82 124 124 SysUtils, 125 125 ACLStringUtility, 126 ACLFileUtility,126 FileUtilsUnit, 127 127 ACLDialogs, 128 128 ACLString, … … 487 487 // (in order to support typing directories, either full or relative) 488 488 Directory := DirectoryListBox.Directory; 489 NewDirectory := ACLFileUtility.ExpandPath( Directory, FileNameText );489 NewDirectory := ExpandPath( Directory, FileNameText ); 490 490 491 491 DosErrorAPI( FERR_DISABLEHARDERR ); … … 521 521 // Work out directory 522 522 FilePath := ExtractFilePath( FileName ); 523 FilePath := ACLFileUtility.ExpandPath( Directory, FilePath );524 525 FileName := Add Slash( FilePath )523 FilePath := ExpandPath( Directory, FilePath ); 524 525 FileName := AddDirectorySeparator( FilePath ) 526 526 + ExtractFileName( FileName ); 527 527 if RequireFileExists then … … 592 592 DosErrorAPI( FERR_DISABLEHARDERR ); 593 593 594 ListDirectory( DirectoryListBox.Directory, 595 FileMask, 596 Filenames, 597 nil ); 594 ListFilesInDirectory( DirectoryListBox.Directory, 595 FileMask, 596 Filenames); 598 597 599 598 Filenames.Sort; … … 606 605 Filename := Filenames[ i ]; 607 606 608 Title := GetHelpFileTitle( Add Slash( DirectoryListBox.Directory )607 Title := GetHelpFileTitle( AddDirectorySeparator( DirectoryListBox.Directory ) 609 608 + Filename ); 610 609 -
trunk/NewView/GlobalSearchForm.pas
r43 r82 143 143 SysUtils, 144 144 DebugUnit, 145 ACLFileUtility,146 145 ACLDialogs, 147 146 ControlsUtility, … … 153 152 SearchDirectoriesFormUnit, 154 153 SettingsUnit, 155 InformationFormUnit; 154 InformationFormUnit, 155 FileUtilsUnit; 156 156 157 157 type … … 517 517 begin 518 518 Dir := StrLeftWithout( Dir, 3 ); 519 ListDirectoryRecursiveAdditive2( Dir, 519 ListFilesInDirectoryRecursiveWithTermination( 520 Dir, 520 521 '*.inf;*.hlp', 521 Dir, // want full paths522 522 Files, 523 nil, // don't care to know subdirs524 523 ThreadManager.StopRequested, 525 524 true ); // check termination … … 527 526 else 528 527 begin 529 ListDirectoryAdditive( Dir, 530 '*.inf;*.hlp', 531 Dir, // want full paths 532 Files, 533 nil ); // don't care to know subdirs 528 ListFilesInDirectory( Dir, 529 '*.inf;*.hlp', 530 Files); 534 531 end; 535 532 end; -
trunk/NewView/MainForm.pas
r81 r82 827 827 // Library 828 828 ACLStringUtility, 829 ACLFileUtility,830 829 ACLFileIOUtility, 831 830 ACLUtility, … … 834 833 StringUtilsUnit, 835 834 DebugUnit, 835 836 FileUtilsUnit, 836 837 837 838 // Components … … 1318 1319 DropObject := Source as TExternalDragDropObject; 1319 1320 1320 g_ExternalLinkFileName := Add Slash( DropObject.ContainerName )1321 g_ExternalLinkFileName := AddDirectorySeparator( DropObject.ContainerName ) 1321 1322 + DropObject.SourceFilename; 1322 1323 g_ExternalLinkTopic := ''; … … 2682 2683 begin 2683 2684 // try in same dir as source file 2684 FilePath := Add Slash( ExtractFilePath( g_ExternalLinkSourceFilename ) )2685 FilePath := AddDirectorySeparator( ExtractFilePath( g_ExternalLinkSourceFilename ) ) 2685 2686 + g_ExternalLinkFilename; 2686 2687 … … 3807 3808 StartingUp := true; 3808 3809 3809 Application.HelpFile := GetOwnHelpFilename; // OWN_HELP_MARKER;3810 Application.OnHelp := OnHelp;3811 3812 3810 SharedMemory := AccessSharedMemory; 3813 3811 GlobalFilelist := TGlobalFilelist.Create; … … 3817 3815 CmdLineParameters := TCmdLineParameters.Create; 3818 3816 CmdLineParameters.parseCmdLine(tmpCmdLine); 3817 3818 Application.HelpFile := CmdLineParameters.GetOwnHelpFilename; // OWN_HELP_MARKER; 3819 Application.OnHelp := OnHelp; 3819 3820 3820 3821 RegisterForLanguages( OnLanguageEvent ); … … 6485 6486 6486 6487 // Find the help file, if possible 6487 FullFilePath := FindHelpFile( Filename ); 6488 if Filename = OWN_HELP_MARKER then 6489 begin 6490 FullFilePath := CmdLineParameters.GetOwnHelpFileName; 6491 end 6492 else 6493 begin 6494 FullFilePath := FindHelpFile( Filename ); 6495 end; 6496 6488 6497 if FullFilePath <> '' then 6489 6498 begin … … 6788 6797 if Settings.UseOriginalDialogs then 6789 6798 begin 6790 SystemOpenDialog.Filename := Add Slash( Settings.LastOpenDirectory ) + '*.hlp;*.inf';6799 SystemOpenDialog.Filename := AddDirectorySeparator( Settings.LastOpenDirectory ) + '*.hlp;*.inf'; 6791 6800 if not SystemOpenDialog.Execute then 6792 6801 exit; -
trunk/NewView/StartupUnit.pas
r61 r82 48 48 PMWin, 49 49 ACLStringUtility, 50 ACLFileUtility,51 HelpManagerUnit;50 HelpManagerUnit, 51 FileUtilsUnit; 52 52 53 53 // Look for any items that are actually specifiying environment … … 95 95 AlternativeFileName: string; 96 96 begin 97 if FileName = OWN_HELP_MARKER then98 begin99 Result := GetOwnHelpFileName;100 exit;101 end;102 103 97 Result := ''; 104 98 -
trunk/NewView/StringUtilsUnit.pas
r75 r82 45 45 // StrExtractStrings('1x2x3\x4', "x", '\') -> 46 46 // returns 4 strings: "1", "", "2" and "3x4" 47 Procedure StrExtractStrings(Var aResult : TStringList; Const aReceiver: String; const aSetOfChars: TSetOfChars; const anEscapeChar: char); 47 Procedure StrExtractStrings(Var aResult : TStrings; Const aReceiver: String; const aSetOfChars: TSetOfChars; const anEscapeChar: char); 48 49 // same as StrExtractStrings but ignores empty strings 50 Procedure StrExtractStringsIgnoreEmpty(Var aResult : TStrings; Const aReceiver: String; const aSetOfChars: TSetOfChars; const anEscapeChar: char); 51 52 // removes all occurences of char from aSetOfChars from the beginning 53 // of a String. 54 Function StrTrimLeftChars(const aReceiver: String; const aSetOfChars: TSetOfChars): String; 55 56 // removes all occurences of char from aSetOfChars from the end 57 // of a String. 58 Function StrTrimRightChars(const aReceiver: String; const aSetOfChars: TSetOfChars): String; 48 59 49 60 // removes all occurences of char from aSetOfChars from the beginning … … 53 64 // removes all blanks from beginning and end 54 65 Function StrTrim(const aReceiver: String): String; 66 67 // Returns the aCount leftmost chars of aString 68 Function StrLeft(const aString : String; const aCount : Integer) : String; 55 69 56 70 // returns true if the String ends with the provides one … … 114 128 begin 115 129 result := ''; 116 for i := 0 To stringList.count-1 do130 for i := 0 to stringList.count-1 do 117 131 begin 118 132 if (i > 0) then result := result + '&'; … … 156 170 157 171 158 Procedure StrExtractStrings(Var aResult: TStringList; Const aReceiver: String; const aSetOfChars: TSetOfChars; const anEscapeChar: char); 172 Procedure PrivateStrExtractStrings( Var aResult: TStrings; 173 const aReceiver: String; 174 const aSetOfChars: TSetOfChars; 175 const anEscapeChar: char; 176 const anIgnoreEmptyFlag : boolean); 159 177 Var 160 178 i : Integer; … … 189 207 if (tmpChar IN aSetOfChars) then 190 208 begin 191 aResult.add(tmpPart); 209 if (NOT anIgnoreEmptyFlag) OR ('' <> tmpPart) then 210 begin 211 aResult.add(tmpPart); 212 end; 192 213 tmpPart := ''; 193 214 i := i + 1; … … 199 220 end; 200 221 end; 201 aResult.add(tmpPart); 222 223 if (NOT anIgnoreEmptyFlag) OR ('' <> tmpPart) then 224 begin 225 aResult.add(tmpPart); 226 end; 227 end; 228 229 230 Procedure StrExtractStrings(Var aResult: TStrings; Const aReceiver: String; const aSetOfChars: TSetOfChars; const anEscapeChar: char); 231 Begin 232 PrivateStrExtractStrings(aResult, aReceiver, aSetOfChars, anEscapeChar, false); 233 end; 234 235 236 Procedure StrExtractStringsIgnoreEmpty(Var aResult: TStrings; Const aReceiver: String; const aSetOfChars: TSetOfChars; const anEscapeChar: char); 237 Begin 238 PrivateStrExtractStrings(aResult, aReceiver, aSetOfChars, anEscapeChar, true); 239 end; 240 241 242 Function StrTrimLeftChars(const aReceiver: String; const aSetOfChars: TSetOfChars): String; 243 Var 244 i : Longint; 245 Begin 246 i := 1; 247 // mem optimization 248 if aReceiver[i] in aSetOfChars then 249 begin 250 while i <= Length(aReceiver) do 251 begin 252 if aReceiver[i] in aSetOfChars then 253 inc(i) 254 else 255 break; 256 end; 257 result := Copy(aReceiver, i, Length(aReceiver)-i+1); 258 end 259 else 260 begin 261 result := aReceiver; 262 end; 263 end; 264 265 266 Function StrTrimRightChars(const aReceiver: String; const aSetOfChars: TSetOfChars): String; 267 Var 268 i : Longint; 269 Begin 270 i := Length(aReceiver); 271 272 // mem optimization 273 if aReceiver[i] in aSetOfChars then 274 begin 275 while i > 0 do 276 begin 277 if aReceiver[i] in aSetOfChars then 278 dec(i) 279 else 280 break; 281 end; 282 result := Copy(aReceiver, 1, i); 283 end 284 else 285 begin 286 result := aReceiver; 287 end; 202 288 end; 203 289 … … 207 293 i : Longint; 208 294 j : Longint; 209 Begin 295 tmpNeedCopy : boolean; 296 Begin 297 tmpNeedCopy := false; 210 298 i := 1; 211 299 while i < Length(aReceiver) do 212 300 begin 213 301 if aReceiver[i] in aSetOfChars then 214 inc(i) 215 else 216 break; 302 begin 303 inc(i); 304 tmpNeedCopy := true; 305 end 306 else 307 begin 308 break; 309 end; 217 310 end; 218 311 … … 221 314 begin 222 315 if aReceiver[j] in aSetOfChars then 223 dec(j) 316 begin 317 dec(j); 318 tmpNeedCopy := true; 319 end 224 320 else 321 begin 225 322 break; 226 end; 227 228 result := Copy(aReceiver, i, j-i+1); 323 end; 324 end; 325 326 if tmpNeedCopy then 327 begin 328 result := Copy(aReceiver, i, j-i+1); 329 end 330 else 331 begin 332 result := aReceiver; 333 end; 229 334 end; 230 335 … … 233 338 Begin 234 339 result := StrTrimChars(aReceiver, [' ']); 340 end; 341 342 343 Function StrLeft(const aString : String; const aCount : Integer) : String; 344 Begin 345 if aCount >= Length(aString) then 346 Result := aString 347 else 348 Result := copy(aString, 1, aCount); 235 349 end; 236 350 -
trunk/NewView/unittests/StringUtilsUnitTests.pas
r68 r82 8 8 StringUtilsUnit; 9 9 10 FUNCTION getStringUtilsUnitTests : TList;10 FUNCTION getStringUtilsUnitTests : TList; 11 11 12 12 … … 279 279 280 280 281 // ------------------------------------------------------ 282 283 281 284 PROCEDURE testStrExtractStrings_EmptyReceiver; 282 285 VAR … … 408 411 409 412 413 // ------------------------------------------------------ 414 415 416 PROCEDURE testStrExtractStringsIgnoreEmpty_EmptyReceiver; 417 VAR 418 tmpResult : TStringList; 419 BEGIN 420 tmpResult := TStringList.Create; 421 StrExtractStringsIgnoreEmpty(tmpResult, '', ['x'], '\'); 422 423 assertEqualsInt('testStrExtractStringsIgnoreEmpty_EmptyReceiver', 0, tmpResult.count); 424 tmpResult.Destroy; 425 END; 426 427 428 PROCEDURE testStrExtractStringsIgnoreEmpty_OnlyOnePart; 429 VAR 430 tmpResult : TStringList; 431 BEGIN 432 tmpResult := TStringList.Create; 433 StrExtractStringsIgnoreEmpty(tmpResult, 'abcd', ['x'], '\'); 434 435 assertEqualsInt('testStrExtractStringsIgnoreEmpty_OnlyOnePart', 1, tmpResult.count); 436 assertEqualsString('testStrExtractStringsIgnoreEmpty_OnlyOnePart', 'abcd', tmpResult[0]); 437 438 tmpResult.Destroy; 439 END; 440 441 442 PROCEDURE testStrExtractStringsIgnoreEmpty_ManyParts; 443 VAR 444 tmpResult : TStringList; 445 BEGIN 446 tmpResult := TStringList.Create; 447 StrExtractStringsIgnoreEmpty(tmpResult, 'abxcd', ['x'], '\'); 448 449 assertEqualsInt('testStrExtractStringsIgnoreEmpty_ManyParts', 2, tmpResult.count); 450 assertEqualsString('testStrExtractStringsIgnoreEmpty_ManyParts', 'ab', tmpResult[0]); 451 assertEqualsString('testStrExtractStringsIgnoreEmpty_ManyParts', 'cd', tmpResult[1]); 452 453 tmpResult.Destroy; 454 END; 455 456 457 PROCEDURE testStrExtractStringsIgnoreEmpty_StartWithDelimiter; 458 VAR 459 tmpResult : TStringList; 460 BEGIN 461 tmpResult := TStringList.Create; 462 StrExtractStringsIgnoreEmpty(tmpResult, 'xab', ['x'], '\'); 463 464 assertEqualsInt('testStrExtractStringsIgnoreEmpty_StartWithDelimiter', 1, tmpResult.count); 465 assertEqualsString('testStrExtractStringsIgnoreEmpty_StartWithDelimiter', 'ab', tmpResult[0]); 466 467 tmpResult.Destroy; 468 END; 469 470 471 PROCEDURE testStrExtractStringsIgnoreEmpty_EndWithDelimiter; 472 VAR 473 tmpResult : TStringList; 474 BEGIN 475 tmpResult := TStringList.Create; 476 StrExtractStringsIgnoreEmpty(tmpResult, 'abx', ['x'], '\'); 477 478 assertEqualsInt('testStrExtractStringsIgnoreEmpty_EndWithDelimiter', 1, tmpResult.count); 479 assertEqualsString('testStrExtractStringsIgnoreEmpty_EndWithDelimiter', 'ab', tmpResult[0]); 480 481 tmpResult.Destroy; 482 END; 483 484 485 PROCEDURE testStrExtractStringsIgnoreEmpty_EmptyPartInside; 486 VAR 487 tmpResult : TStringList; 488 BEGIN 489 tmpResult := TStringList.Create; 490 StrExtractStringsIgnoreEmpty(tmpResult, 'axxb', ['x'], '\'); 491 492 assertEqualsInt('testStrExtractStringsIgnoreEmpty_EmptyPartInside', 2, tmpResult.count); 493 assertEqualsString('testStrExtractStringsIgnoreEmpty_EmptyPartInside', 'a', tmpResult[0]); 494 assertEqualsString('testStrExtractStringsIgnoreEmpty_EmptyPartInside', 'b', tmpResult[1]); 495 496 tmpResult.Destroy; 497 END; 498 499 500 PROCEDURE testStrExtractStringsIgnoreEmpty_NoDelimiter; 501 VAR 502 tmpResult : TStringList; 503 BEGIN 504 tmpResult := TStringList.Create; 505 StrExtractStringsIgnoreEmpty(tmpResult, 'axxb', [], '\'); 506 507 assertEqualsInt('testStrExtractStringsIgnoreEmpty_NoDelimiter', 1, tmpResult.count); 508 assertEqualsString('testStrExtractStringsIgnoreEmpty_NoDelimiter', 'axxb', tmpResult[0]); 509 510 tmpResult.Destroy; 511 END; 512 513 514 PROCEDURE testStrExtractStringsIgnoreEmpty_EscapedDelimiter; 515 VAR 516 tmpResult : TStringList; 517 BEGIN 518 tmpResult := TStringList.Create; 519 StrExtractStringsIgnoreEmpty(tmpResult, 'a\xb', ['x'], '\'); 520 521 assertEqualsInt('testStrExtractStringsIgnoreEmpty_EscapedDelimiter', 1, tmpResult.count); 522 assertEqualsString('testStrExtractStringsIgnoreEmpty_EscapedDelimiter', 'axb', tmpResult[0]); 523 524 tmpResult.Destroy; 525 END; 526 527 PROCEDURE testStrExtractStringsIgnoreEmpty_EscapedEscapeChar; 528 VAR 529 tmpResult : TStringList; 530 BEGIN 531 tmpResult := TStringList.Create; 532 StrExtractStringsIgnoreEmpty(tmpResult, 'a\\xb', ['x'], '\'); 533 534 assertEqualsInt('testStrExtractStringsIgnoreEmpty_EscapedEscapeChar', 2, tmpResult.count); 535 assertEqualsString('testStrExtractStringsIgnoreEmpty_EscapedEscapeChar', 'a\', tmpResult[0]); 536 assertEqualsString('testStrExtractStringsIgnoreEmpty_EscapedEscapeChar', 'b', tmpResult[1]); 537 538 tmpResult.Destroy; 539 END; 540 541 542 // ------------------------------------------------------------------- 543 544 545 PROCEDURE testTrimLeftChars_Empty; 546 VAR 547 tmpResult : String; 548 BEGIN 549 tmpResult := StrTrimLeftChars('', ['b', 'x']); 550 551 assertEqualsString('testTrimLeftChars_Empty', '', tmpResult); 552 END; 553 554 555 PROCEDURE testTrimLeftChars_RemoveAll; 556 VAR 557 tmpResult : String; 558 BEGIN 559 tmpResult := StrTrimLeftChars('bxxxbx', ['b', 'x']); 560 561 assertEqualsString('testTrimLeftChars_RemoveAll', '', tmpResult); 562 END; 563 564 565 PROCEDURE testTrimLeftChars_OneLeft; 566 VAR 567 tmpResult : String; 568 BEGIN 569 tmpResult := StrTrimLeftChars('bxy', ['b', 'x']); 570 571 assertEqualsString('testTrimLeftChars_OneLeft', 'y', tmpResult); 572 END; 573 574 575 PROCEDURE testTrimLeftChars_LeftOnly; 576 VAR 577 tmpResult : String; 578 BEGIN 579 tmpResult := StrTrimLeftChars('bxbxxay', ['b', 'x']); 580 581 assertEqualsString('testTrimLeftChars_LeftOnly', 'ay', tmpResult); 582 END; 583 584 585 PROCEDURE testTrimLeftChars_CharsInside; 586 VAR 587 tmpResult : String; 588 BEGIN 589 tmpResult := StrTrimLeftChars('bxabxvvx', ['b', 'x']); 590 591 assertEqualsString('testTrimLeftChars_CharsInside', 'abxvvx', tmpResult); 592 END; 593 594 595 PROCEDURE testTrimLeftChars_Nothing; 596 VAR 597 tmpResult : String; 598 BEGIN 599 tmpResult := StrTrimLeftChars('acdef', ['b', 'x']); 600 601 assertEqualsString('testTrimLeftChars_Nothing', 'acdef', tmpResult); 602 END; 603 604 605 // ------------------------------------------------------------------- 606 607 608 PROCEDURE testTrimRightChars_Empty; 609 VAR 610 tmpResult : String; 611 BEGIN 612 tmpResult := StrTrimRightChars('', ['b', 'x']); 613 614 assertEqualsString('testTrimRightChars_Empty', '', tmpResult); 615 END; 616 617 618 PROCEDURE testTrimRightChars_RemoveAll; 619 VAR 620 tmpResult : String; 621 BEGIN 622 tmpResult := StrTrimRightChars('bxxxbx', ['b', 'x']); 623 624 assertEqualsString('testTrimRightChars_RemoveAll', '', tmpResult); 625 END; 626 627 628 PROCEDURE testTrimRightChars_OneLeft; 629 VAR 630 tmpResult : String; 631 BEGIN 632 tmpResult := StrTrimRightChars('ybx', ['b', 'x']); 633 634 assertEqualsString('testTrimRightChars_OneLeft', 'y', tmpResult); 635 END; 636 637 638 PROCEDURE testTrimRightChars_RightOnly; 639 VAR 640 tmpResult : String; 641 BEGIN 642 tmpResult := StrTrimRightChars('aybxbxx', ['b', 'x']); 643 644 assertEqualsString('testTrimRightChars_RightOnly', 'ay', tmpResult); 645 END; 646 647 648 PROCEDURE testTrimRightChars_CharsInside; 649 VAR 650 tmpResult : String; 651 BEGIN 652 tmpResult := StrTrimRightChars('abxvvxb', ['b', 'x']); 653 654 assertEqualsString('testTrimRightChars_CharsInside', 'abxvv', tmpResult); 655 END; 656 657 658 PROCEDURE testTrimRightChars_Nothing; 659 VAR 660 tmpResult : String; 661 BEGIN 662 tmpResult := StrTrimRightChars('acdef', ['b', 'x']); 663 664 assertEqualsString('testTrimRightChars_Nothing', 'acdef', tmpResult); 665 END; 666 667 668 // ------------------------------------------------------------------- 669 410 670 PROCEDURE testTrimChars_Empty; 411 671 VAR … … 428 688 429 689 690 PROCEDURE testTrimChars_OneLeftFromLeft; 691 VAR 692 tmpResult : String; 693 BEGIN 694 tmpResult := StrTrimChars('bxa', ['b', 'x']); 695 696 assertEqualsString('testTrimChars_OneLeftFromLeft', 'a', tmpResult); 697 END; 698 699 700 PROCEDURE testTrimChars_OneLeftFromRight; 701 VAR 702 tmpResult : String; 703 BEGIN 704 tmpResult := StrTrimChars('abx', ['b', 'x']); 705 706 assertEqualsString('testTrimChars_OneLeftFromRight', 'a', tmpResult); 707 END; 708 709 430 710 PROCEDURE testTrimChars_LeftOnly; 431 711 VAR … … 468 748 469 749 750 // ------------------------------------------------------------------- 751 752 470 753 PROCEDURE testTrim; 471 754 VAR … … 476 759 assertEqualsString('testTrim', 'a bc', tmpResult); 477 760 END; 761 762 763 // ------------------------------------------------------------------- 764 765 766 PROCEDURE testStrLeft_Empty; 767 VAR 768 tmpResult : String; 769 BEGIN 770 tmpResult := StrLeft('', 1); 771 772 assertEqualsString('testStrLeft_Empty', '', tmpResult); 773 END; 774 775 776 PROCEDURE testStrLeft_Nothing; 777 VAR 778 tmpResult : String; 779 BEGIN 780 tmpResult := StrLeft('abc', 0); 781 782 assertEqualsString('testStrLeft_Nothing', '', tmpResult); 783 END; 784 785 786 PROCEDURE testStrLeft_WholeString; 787 VAR 788 tmpResult : String; 789 BEGIN 790 tmpResult := StrLeft('abc', 3); 791 792 assertEqualsString('testStrLeft_WholeString', 'abc', tmpResult); 793 END; 794 795 PROCEDURE testStrLeft_ToManyRequested; 796 VAR 797 tmpResult : String; 798 BEGIN 799 tmpResult := StrLeft('abc', 5); 800 801 assertEqualsString('testStrLeft_ToManyRequested', 'abc', tmpResult); 802 END; 803 804 PROCEDURE testStrLeft_Part; 805 VAR 806 tmpResult : String; 807 BEGIN 808 tmpResult := StrLeft('abcdef', 2); 809 810 assertEqualsString('testStrLeft_Part', 'ab', tmpResult); 811 END; 812 813 // ------------------------------------------------------------------- 478 814 479 815 … … 724 1060 result.add(@testStrExtractStrings_EscapedEscapeChar); 725 1061 1062 result.add(@testStrExtractStringsIgnoreEmpty_EmptyReceiver); 1063 result.add(@testStrExtractStringsIgnoreEmpty_OnlyOnePart); 1064 result.add(@testStrExtractStringsIgnoreEmpty_ManyParts); 1065 result.add(@testStrExtractStringsIgnoreEmpty_StartWithDelimiter); 1066 result.add(@testStrExtractStringsIgnoreEmpty_EndWithDelimiter); 1067 result.add(@testStrExtractStringsIgnoreEmpty_EmptyPartInside); 1068 result.add(@testStrExtractStringsIgnoreEmpty_NoDelimiter); 1069 result.add(@testStrExtractStringsIgnoreEmpty_EscapedDelimiter); 1070 result.add(@testStrExtractStringsIgnoreEmpty_EscapedEscapeChar); 1071 1072 result.add(@testTrimLeftChars_Empty); 1073 result.add(@testTrimLeftChars_RemoveAll); 1074 result.add(@testTrimLeftChars_OneLeft); 1075 result.add(@testTrimLeftChars_LeftOnly); 1076 result.add(@testTrimLeftChars_CharsInside); 1077 result.add(@testTrimLeftChars_Nothing); 1078 1079 result.add(@testTrimRightChars_Empty); 1080 result.add(@testTrimRightChars_RemoveAll); 1081 result.add(@testTrimRightChars_OneLeft); 1082 result.add(@testTrimRightChars_RightOnly); 1083 result.add(@testTrimRightChars_CharsInside); 1084 result.add(@testTrimRightChars_Nothing); 1085 726 1086 result.add(@testTrimChars_Empty); 727 1087 result.add(@testTrimChars_RemoveAll); 1088 result.add(@testTrimChars_OneLeftFromLeft); 1089 result.add(@testTrimChars_OneLeftFromRight); 728 1090 result.add(@testTrimChars_LeftOnly); 729 1091 result.add(@testTrimChars_RightOnly); 730 1092 result.add(@testTrimChars_CharsInside); 731 1093 result.add(@testTrimChars_Nothing); 1094 732 1095 result.add(@testTrim); 1096 1097 result.add(@testStrLeft_Empty); 1098 result.add(@testStrLeft_Nothing); 1099 result.add(@testStrLeft_WholeString); 1100 result.add(@testStrLeft_ToManyRequested); 1101 result.add(@testStrLeft_Part); 733 1102 734 1103 result.add(@testStrEndsWith_BothEmpty);
Note:
See TracChangeset
for help on using the changeset viewer.