dann wird es daran liegen das du Delphi 5 hast (ich hab delphi 7 und das mit dem delimiter gibt es erst seit delphi 6) Ich bastel das ganze mal mit anderen funktionen zusammen.
[...]
Hier der Source (Laden Methode abgeändert)
Delphi-Quellcode:
procedure splitString(const Source: String; const Delimiter: String; var Dest: TStringlist);
var count: Integer;
LStartpos, LEndepos, LSourcelength: Integer;
LDelimiterLength : Integer;
begin
Dest.Clear;
count := 1;
LStartpos := 0;
LEndepos := 0;
LSourcelength := length(Source);
LDelimiterLength := Length(Delimiter);
while count <= LSourcelength do begin
if copy(Source, count, LDelimiterLength) = Delimiter then begin
LEndepos := count;
dest.Add(copy(Source, LStartpos + 1, LEndepos - LStartpos - 1));
LStartpos := count + LDelimiterLength - 1;
inc(count,LDelimiterLength);
end
else begin
inc(count);
end;
end;
if LEndePos <> Count - LDelimiterLength then
dest.Add(copy(Source, LStartpos + 1, count - LStartpos - 1));
end;
//laden
procedure TForm1.BtnLoadClick(Sender: TObject);
var LListe1, LListe2: TStringlist;
LCount1, LCount2: Integer;
LItem: TListItem;
begin
LListe1 := TStringList.Create;
LListe2 := TStringList.Create;
LListe1.LoadFromFile('YourFilename');
ListView1.Clear;
for LCount1 := 0 to LListe1.Count - 1 do
begin
LItem := ListView1.Items.Add;
splitString(LListe1.Strings[LCount1], '|', LListe2);
for LCount2 := 0 to LListe2.Count - 1 do
begin
if LCount2 = 0 then
LItem.Caption := LListe2.Strings[LCount2]
else
LItem.SubItems.Add(LListe2.Strings[LCount2]);
end;
end;
LListe2.Free;
LListe1.Free;
end;
Beim speichern und/oder laden wandert bei mir nix weiter nach links. Oder meinst du die spaltenbreite? Das wird daran liegen das beim laden kurzzeitig die ganze liste geleert wird. Setzt einfach mal die Spaltenbreite auf "-2" dann passt diese sich automatich auf die optimale Breite an. Anstelle von "|" kannst du auch "|||" oder irgend welche anderen trennzeichen verwenden. Zu empfehlen wäre zum Beispiel "µµµµ" da es seeeehr unwahrscheinlich ist das "µ" 4 mal hintereinander in irgend einer Spalte vorkommt.