Einzelnen Beitrag anzeigen

Helmutf

Registriert seit: 8. Mär 2006
Ort: NÖ.
25 Beiträge
 
Delphi 6 Enterprise
 
#1

Lange Strings (> 255 zerlegen und in Stringliste überneh

  Alt 14. Mär 2006, 17:08
Hallo,

Ich möchte lange Strings (grösser als 255 Bytes) übernehmen und in einer normalen Stringliste ablegen.

Die Lösung die ich habe, funktioniert nur mit kurzen Strings.
Da bei langen Strings alles anders funktioniert, Speicherzuweisung, Befehle - kann jemand das auf die Schnelle umschreiben ?
Delphi-Quellcode:
  function Zerlege( SText:String ) : TStrings;
  const Trz = ';';
  var t:Integer;
      H,S:String;
  begin
     Result := TStringList.Create;

     // Ziel,Source
     H := SText; // H = Workstring
     // Baue Stringliste auf
     while length(H) > 0 do
     begin
        t := Pos(TrZ,H);
        if t > 0 then
        begin
          S := copy(H,1,t-1); // Teilstring
          H := copy(H,t+1,255); // Reststring
          Result.Add(S);
        end
        else
          begin
            Result.Add(H); // Rest
            H := ''; // Ende
          end;
     end;
  end;

// Aufruf
        OvcListBox_Search.Items.Assign( Zerlege( Reg.ReadString('Search Path')));

// Reg.ReadString liefert den String
// Zerlege zerlegt ihn an Hand von Trennzeichen
// OvcListBox_Search (ListBox) übernimmt die schon zerlegte Liste

// Ausgangsbasis:
// Item1;Item2;Item3;Item4 usw.

// Zielbasis:
// Item1
// Item2
// Item3 usw.

// Obige Prozedur funktioniert nur mit kurzen Strings.
// Aber wir haben lange Strings, mehrere tausend Zeichen lang ...
Gruss Helmut
  Mit Zitat antworten Zitat