stringl.pp 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. program teststrings;
  2. Uses classes,sysutils;
  3. Procedure DoRef (P : Pointer);
  4. Type PLongint = ^Longint;
  5. begin
  6. If P=Nil then
  7. Writeln ('(Ref : Empty string)')
  8. else
  9. {$ifdef fpc}
  10. Writeln (' (Ref: ',Plongint(Longint(P)-4)^,',Len: ',PLongint(Longint(P)-8)^,')');
  11. {$else}
  12. Writeln (' (Ref: ',Plongint(Longint(P)-8)^,',Len: ',PLongint(Longint(P)-4)^,')');
  13. {$endif}
  14. end;
  15. Procedure test;
  16. var S,TS : ANsiSTring;
  17. T : TStringList;
  18. I,J : Longint;
  19. A : String[255];
  20. begin
  21. S:='An Ansi string ';
  22. T:=TStringList.create;
  23. Writeln ('Count : ',T.Count,' Capacity : ',T.Capacity);
  24. For I:=1 to 10 do
  25. begin
  26. str (I,TS);
  27. T.Add(S+TS);
  28. end;
  29. Writeln ('Count : ',T.Count,' Capacity : ',T.Capacity);
  30. J:=T.Count-1;
  31. Writeln ('J : ',J);
  32. For I:=0 to J do
  33. Writeln(I,'/',J,' : ',T.Strings[I]);
  34. T.SaveToFile ('strings.dat');
  35. T.Clear;
  36. T.LoadFromFile('strings.dat');
  37. J:=T.Count-1;
  38. Writeln ('Count = ',J);
  39. For I:=0 to J do
  40. Writeln(I,'/',J,' : ',T.Strings[I]);
  41. Writeln ('IndexOf(''An Ansi string 6'') = ',T.IndexOf('An Ansi string 6'));
  42. Writeln ('IndexOf(''An Ansi string 11'') = ',T.IndexOf('An Ansi string 11'));
  43. T.Clear;
  44. For I:=1 to 10 do
  45. T.Values['Var'+IntToStr(I)]:='Val'+IntToSTr(I);
  46. J:=T.Count-1;
  47. Writeln ('J = ',J);
  48. For I:=0 to J do
  49. Writeln(I,'/',J,' : ',T.Strings[I]);
  50. Writeln ('Indexof(''Var6'') = ',T.IndexOfName('Var6'));
  51. Writeln ('Indexof(''Var13'') = ',T.IndexOfName('Var13'));
  52. Writeln ('Value[''Var6''] = ',T.Values['Var6']);
  53. Writeln ('Value[''Var13''] = ',T.Values['Var13']);
  54. Try
  55. Writeln ('String 100 = ');
  56. S:=T.Strings[100];
  57. except
  58. On e: exception do Writeln ('Caught exception : ',e.message);
  59. end;
  60. T.Free;
  61. end;
  62. Var Data : longint;
  63. begin
  64. Data:=memavail;
  65. test;
  66. Writeln ('Lost ',Data-Memavail);
  67. end. $Log$
  68. end. Revision 1.2 2000-07-13 11:33:04 michael
  69. end. + removed logs
  70. end.
  71. }