AGB  ·  Datenschutz  ·  Impressum  







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

Txt in Listview Laden

Ein Thema von Natcree · begonnen am 16. Mär 2013 · letzter Beitrag vom 17. Mär 2013
Antwort Antwort
Seite 1 von 3  1 23      
Natcree

Registriert seit: 5. Mär 2013
502 Beiträge
 
Delphi 7 Enterprise
 
#1

Txt in Listview Laden

  Alt 16. Mär 2013, 14:34
Hallo ich habe ein Listview die über eine Objectlist bearbeitet werden kann nun Speichere ich beim beenden die Listview in eine *.txtab. Alles kein Problem soweit.

Beim laden der txt datei fügt er sie in die Listview = kassenbuch ein das funktionier. aber sobald ich neue Sachen der Listview mit hinzufüge dann verschwinden diese. Muss ich die txt in die Objectliste einlesen??? hier mal der Code.

Delphi-Quellcode:
procedure TForm1.Button4Click(Sender: TObject);
Var
  LoadList: TStrings;
  i, ActPos, PrevPos: Integer;
Const
  Delimitter = #14;

Begin
   LoadList := TStringList.create;

  Try
    // Laden...
    LoadList.LoadFromFile('c:\test.txt');
    // Lösche den ListView
    Kassenbuch.Items.Clear;

    // Laufe durch Zeilen der StringList
    For i := 0 To pred(LoadList.Count) Do
    Begin
      PrevPos := 1;
      ActPos := 1;
      // Erste Position des Delimitters
      ActPos := PosEx(Delimitter, LoadList[i], succ(ActPos));
      // Erstelle Item
      With Kassenbuch.Items.Add Do
      Begin
        // setze Caption des neuen Items
        Caption := Copy(LoadList[i], PrevPos, (ActPos - PrevPos));
        PrevPos := succ(ActPos);
        // erzeuge für jeden gefundenen Delimitter ein SubItem
        Repeat
          ActPos := PosEx(Delimitter, LoadList[i], succ(ActPos));
          If ActPos <> 0 Then
            SubItems.Add(Copy(LoadList[i], PrevPos, (ActPos - PrevPos)))
          Else
            SubItems.Add(Copy(LoadList[i], PrevPos, Length(LoadList[i])));
          PrevPos := succ(ActPos);
        // Wenn ActPos = 0 (kein Delimitter gefunden) -> fertig
        Until ActPos = 0;
      End;
    End;
   finally
end;
   end;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#2

AW: Txt in Listview Laden

  Alt 16. Mär 2013, 15:35
Du musst Dir erst einmal über die Funktionsweise im Klaren sein, sonst stellst Du noch 200 Fragen und bist hinterher immer noch nicht schlauer. Da ist zunächst einmal die Objektliste. Diese enthält die eigentlichen Daten. Datenänderungen (Hinzufügen, Bearbeiten, Löschen) haben also immer hier zu erfolgen. Die Listview dient lediglich dazu, diese Daten zu visualisieren, daraus folgt: ändert sich etwas an den Daten, muss die ListView aktualisiert werden. Prinzipiell würde das Programm auch als Konsolenanwendung funktionieren, dann hat man eben keine Komponenten, sondern gibt sein Zeugs auf der Kommandozeile ein. Und auch bei Verwendung der VCL ist die Darstellungskomponente austauschbar, das kann die ListView, ein StringGrid, ein Memo, eine ListBox oder was weiß ich sonst noch sein. Verinnerliche dies, und schau Dir Deinen Code daraufhin noch einmal an, dann beantworten sich viele Fragen ganz von selbst.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#3

AW: Txt in Listview Laden

  Alt 16. Mär 2013, 15:38
Erstens:

Delphi-Quellcode:
Var
  LoadList: TStrings;
Das sollte so lange klappen, solange du keine typische TStringList Funktion nutzt. Mach also besser TStringList draus.
  Mit Zitat antworten Zitat
Natcree

Registriert seit: 5. Mär 2013
502 Beiträge
 
Delphi 7 Enterprise
 
#4

AW: Txt in Listview Laden

  Alt 16. Mär 2013, 22:40
Will die Daten schon in die Objectliste laden das ist mir klar weil die listview ja nur die Visuelle wiedergabe darstellt. Wie müsste ich denn mit meinem Code Anfangen? Kann mann meinen Code Oben auf die Objectliste umschreiben wenn ja wie? Arbeite zum erstenmal mit Objectklassen. Also in die Listview Kriege ich sie ja aber wie Weiter???
  Mit Zitat antworten Zitat
Natcree

Registriert seit: 5. Mär 2013
502 Beiträge
 
Delphi 7 Enterprise
 
#5

AW: Txt in Listview Laden

  Alt 17. Mär 2013, 00:08
Habe mal meinen Code umgeschrieben er sagt mir jetzt list out of Bounds(0) als Fehler

Hier der Code


Delphi-Quellcode:
procedure TForm1.Button4Click(Sender: TObject);
Var
  Item: TListItem;
  LoadList: TStringlist;
  i, ActPos, PrevPos: Integer;
Const
  Delimitter = #14;

Begin
   LoadList := TStringList.create;
Try
    // Laden...
    LoadList.LoadFromFile('c:\test.txt');
   // Lösche den ListView
    Kassenbuch.Items.Clear; //Kassenbuch =Listview1

    // Laufe durch Zeilen der StringList
    For i := 0 To pred(LoadList.Count) Do
    Begin
      PrevPos := 1;
      ActPos := 1;
      // Erste Position des Delimitters
      ActPos := PosEx(Delimitter, LoadList[i], succ(ActPos));
      // Erstelle Item
       item.Data:=FObjects[i];
      With FObjects[i] Do
      Begin
        // setze Caption des neuen Items
        Caption := Copy(LoadList[i], PrevPos, (ActPos - PrevPos));
        PrevPos := succ(ActPos);
        // erzeuge für jeden gefundenen Delimitter ein SubItem
        Repeat
          ActPos := PosEx(Delimitter, LoadList[i], succ(ActPos));
          If ActPos <> 0 Then
           item.SubItems.Add(Copy(LoadList[i], PrevPos, (ActPos - PrevPos)))
          Else
           item.SubItems.Add(Copy(LoadList[i], PrevPos, Length(LoadList[i])));
          PrevPos := succ(ActPos);
        // Wenn ActPos = 0 (kein Delimitter gefunden) -> fertig
        Until ActPos = 0;
      end;
   end;
   except
   end;
   end;
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#6

AW: Txt in Listview Laden

  Alt 17. Mär 2013, 00:15
Zitat:
// Erstelle Item
item.Data:=FObjects[i];
wo wird item erstellt und was ist FObjects[i]
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Natcree

Registriert seit: 5. Mär 2013
502 Beiträge
 
Delphi 7 Enterprise
 
#7

AW: Txt in Listview Laden

  Alt 17. Mär 2013, 00:19
FObjects ist meine Objectliste

Zitat:
wo wird item erstellt
Was meinst du damit?
  Mit Zitat antworten Zitat
Volker Z.

Registriert seit: 4. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#8

AW: Txt in Listview Laden

  Alt 17. Mär 2013, 00:30
Hallo,

item ist vermutlich ein Item der Listview. So müsste es dann wohl Kassenbuch.Item [i].Data := FObjects [i] heißen. Die Frage ist nur lebt den FObjects [i] an der Stelle schon? Ich sehe, dass Du da mit LoadFromFile irgendwas einließt, aber sicher nicht an Deine ObjectList weitergibst.

Gruß
Volker Zeller

Geändert von Volker Z. (17. Mär 2013 um 00:39 Uhr) Grund: Rechtschreibung
  Mit Zitat antworten Zitat
Natcree

Registriert seit: 5. Mär 2013
502 Beiträge
 
Delphi 7 Enterprise
 
#9

AW: Txt in Listview Laden

  Alt 17. Mär 2013, 00:39
wie mache ich das denn mit dem weiter geben
  Mit Zitat antworten Zitat
Natcree

Registriert seit: 5. Mär 2013
502 Beiträge
 
Delphi 7 Enterprise
 
#10

AW: Txt in Listview Laden

  Alt 17. Mär 2013, 00:41
ich habe die daten schon in die listview gebracht aber sie müssen in die Objectliste weil ich die Listview nach jeder eingabe update. wie bekomme ich denn die Übergabe zur objectlist hin?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 11:16 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