Einzelnen Beitrag anzeigen

Franzelchen

Registriert seit: 22. Mär 2007
82 Beiträge
 
#27

Re: TStringlist, THashedStringlist gibts nichts schnelleres?

  Alt 26. Mär 2010, 15:27
Hallo,
Das mit dem Trennen das auftrennen in ButtonClick und Funktion gemeint ist, ist mir dann heute Morgen eingefallen.

Anbei mein noch ziemlich unreifer erster Versuch:

Delphi-Quellcode:
function Testfunktion(SL:TStringlist):Tstrings;
var a,b :integer;
   SList : TStringlist;
   SG: TStringgrid;
begin
  a := 0;
  // StringGrid auf die maximal mögliche Zeilenanzahl setzen
  SG.RowCount := SList.Count;
  for b := 0 to SList.Count - 1 do
    begin
      SG.Rows[ a ].BeginUpdate;
      try
        if b > 0 then
          begin
            if SList.strings[ b ] = SList.strings[ b - 1 ] then
              begin
                SG.cells[ 1, a ] := inttostr( strtoint( SG.cells[ 1, a ] ) + 1 )
              end
            else
              begin
                inc( a );
                SG.cells[ 1, a ] := '1';
                SG.cells[ 0, a ] := SList.strings[ b ];
              end;
          end
        else
          begin
            SG.cells[ 0, a ] := SL.strings[ b ];
            SG.cells[ 1, a ] := '1';
          end;

      finally
        SG.Rows[ a ].EndUpdate;
      end;
    end;
  // Jetzt setzen wir die korrekte Anzahl der Zeilen
  SG.RowCount := a;
  Result := SG.Rows[a];
end;

procedure TForm1.Button2Click(Sender: TObject);
var
startzeit,stopzeit:TDateTime;
SL : TStringlist;
begin
  Screen.Cursor := crHourGlass;
  startZeit := now;
  SL := TStringlist.Create;
  SL.LoadFromFile( 'DatenTest.tmp' );

  SL.Text := StringReplace( SL.Text, 'ß', 'SSSSSSS', [ rfReplaceAll ] );
  SL.Sort;
  SL.Text := StringReplace( SL.Text, 'SSSSSSS', 'ß', [ rfReplaceAll ] );

  SL.SaveToFile( 'sortiert.txt' );

  Testfunktion(SL) ;

  SL.Free;
  StopZeit := now;
  Label1.Caption := FormatDateTime( 'nn:ss:zzz', StopZeit - startZeit );
  Screen.Cursor := crDefault;
end;
Es gibt einen Zugriffsfehler innerhalb der Funktion aber warum?
  Mit Zitat antworten Zitat