AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ListView laden

Ein Thema von Larsi · begonnen am 17. Nov 2007 · letzter Beitrag vom 13. Dez 2007
Antwort Antwort
Seite 4 von 4   « Erste     234   
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#31

Re: ListView laden

  Alt 27. Nov 2007, 13:27
http://www.delphi-forum.de/printview...075ba27e1eeab2



(*seufz* *schlechte laune*)
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
Benutzerbild von Opa
Opa

Registriert seit: 12. Jun 2003
107 Beiträge
 
Delphi 7 Enterprise
 
#32

Re: ListView laden

  Alt 13. Dez 2007, 23:27
Das dürfte hierzu passen, es gibt andere Lösungen, diese kann u.a. auch <space> richtig schreiben.
Als Delimiter habe ich das Zeichen chr(254) genommen.
Die Konstanten
WM_LVF_ERROR, WM_LVF_COUNT, WM_LVF_END, kann man weglassen, wenn man keine Fehlermeldungen usw. haben möchte.
Code:
uses
  SysUtils,System,Classes
const
  WM_LVF_ERROR          = WM_USER               + 10;
  WM_LVF_COUNT          = WM_LVF_ERROR          +  1;
  WM_LVF_END            = WM_LVF_COUNT          +  1;
  C_LV_Delimiter   = chr(254);
//------------------------------------------------------------------------------
procedure _Explode(TS:TStrings; Sub:string; const S: string);
var//uses SysUtils,System,Classes
  S2: string;
  I: integer;
begin
  I := 0;
  S2 := S;
  TS.Clear;
  S2 := trim(S);
  if S2 = '' then exit;
  if S2 = Sub then exit;
  S2 := S2 + Sub;
  {-$R}
    repeat
      TS.Add(Copy(S2, 0,Pos(Sub, S2) - 1));
      delete(S2, 1,length(TS[I] + Sub));
      inc(I);
    until S2 = '';
  {+$R}
end;
//------------------------------------------------------------------------------
procedure TMain.SaveToFile(const DateiName: string);
var
  TS : TStringList;
  I,J : integer;
  S  : string;
begin
  try
    TS:= TStringList.Create;
    for I := 0 to (ListView.Items.Count - 1) do
    begin
      S:=IntToStr(ListView.Items.Item[I].ImageIndex)+C_LV_Delimiter+
         ListView.Items.Item[I].Caption+C_LV_Delimiter;
      for J := 0 to Items[I].SubItems.Count -1 do
      S:= S+ ListView.Items.Item[I].SubItems[J]+C_LV_Delimiter;
      S:= Copy(S,1,length(S)-1);
      TS.Add(S);
    end;
    TS.SaveToFile(DateiName);
  finally
    FreeAndNil(TS);
  end;
end;
//------------------------------------------------------------------------------
procedure TMain.LoadFromFile(const DateiName: string);
var
   TS1,TS2  : TStringList;
   ListItem : TListItem;
   I,J     : integer;
begin
    if not FileExists(DateiName) then
    begin
      //SendMessage(AHandle,WM_LVF_ERROR,longInt(@Dateiname),1);//Error 1 = keine Datei vorhanden
      Exit;
    end;
    Self.Clear;
    TS1:= TStringList.Create;
    TS2:= TStringList.Create;
    try
      TS1.LoadFromFile(DateiName);
      for I:=0 to TS1.Count-1 do
      begin
        _Explode(TS2,C_LV_Delimiter,TS1[I]);
        ListItem := ListView.Items.Add;
        ListItem.ImageIndex:=StrToInt(TS2.Strings[0]);
        ListItem.Caption :=TS2.Strings[1];
        for J:=2 to TS2.Count-1 do ListItem.SubItems.Add(TS2.Strings[J]);
        //SendMessage(AHandle,WM_LVF_COUNT,0,I);
      end;
    finally
      FreeAndNil(TS1);
      FreeAndNil(TS2);
      //SendMessage(AHandle,WM_LVF_END,0,0);
    end;
end;
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 4   « Erste     234   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz