LinkedList und ListconGadget

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Pelagio
Beiträge: 424
Registriert: 11.11.2004 17:52
Computerausstattung: AMD Ryzen 5 7600 6-Core Prozessor 3.80 GHz
16,0 GB Arbeitsspeicher
Windows 11 Pro Betriebssystem
Wohnort: Bremen

LinkedList und ListconGadget

Beitrag von Pelagio »

:oops: Guten Morgen,

und schon ist ein Problem bei mir aufgetreten welches ich nicht zu lösen vermag.
Ich hoffe daher das jemand die Lösung mir mitteilen kann.
Ich lade Daten aus einer Datei in ein ListIconGadget was auch, allerdings nur bei Programmstart, funktioniert.
Wenn ich das Programm laufen habe und will die Daten neu laden ( Bspw. bei einer Änderung der Datendatei)
so wird zwar die erste Spalte gefüllt aber alle anderen Spalten bleiben leer, warum?

Code: Alles auswählen

Procedure LoadDaten()
   Protected Value.s
   
   If ReadFile(0, "Daten.dat")
      If CountGadgetItems(#GADGET_ListIcon) 
         ClearList(Daten())
         ClearGadgetItemList(#GADGET_ListIconGadget)
      EndIf 
  
      While (Eof(0) = #FALSE)
         Value =  Trim(ReadString())
         AddElement(Daten())
         Daten()\Item1 = StringField(Value, 1, ";")
         Daten()\Item2 = StringField(Value, 2, ";")
         Daten()\Item3 = StringField(Value, 3, ";")
         Daten()\Item4 = StringField(Value, 4, ";")
         Daten()\Item5 = StringField(Value, 5, ";")
         Daten()\Item6 = StringField(Value, 6, ";")
         Value =  ReplaceString(Value, ";", Chr(#Asci_LF))
         AddGadgetItem(#GADGET_ListIconGadget, ListIndex(Daten()), Value)
     Wend   
     CloseFile(0)   
   EndIf

EndProcedure
:oops:
Benutzeravatar
Kiffi
Beiträge: 10719
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: LinkedList und ListconGadget

Beitrag von Kiffi »

Hallo Pelagio,

1. Du füllst zwar die Linkedlist, aber benutzt zum Füllen des
ListIconGadget() trotzdem wieder Deinen Value-String

2. Die Konstante #Asci_LF ist meinem Compiler unbekannt.
Verwende mal Chr(#LF).

Code: Alles auswählen

Procedure LoadDaten()
   Protected Value.s
   
   If ReadFile(0, "Daten.dat")
      If CountGadgetItems(#GADGET_ListIcon) 
         ClearList(Daten())
         ClearGadgetItemList(#GADGET_ListIconGadget)
      EndIf 
  
    While (Eof(0) = #False)
      Value =  Trim(ReadString())
      Value =  ReplaceString(Value, ";", Chr(#LF))
      AddGadgetItem(#GADGET_ListIconGadget, -1, Value)
    Wend   

     CloseFile(0)   
   EndIf

EndProcedure
3. Wenn Du die LinkedList dennoch benötigst. dann musst Du alle Items
Deines aktuellen Eintrages mit Chr(#LF) verknüpfen und dann in das
ListIconGadget eintragen:

Code: Alles auswählen

MyNewValue = Daten()\Item1 + Chr(#LF) + Daten()\Item2 ...
AddGadgetItem(#GADGET_ListIconGadget, -1, MyNewValue)
Grüße ... Kiffi
Benutzeravatar
Lars
Beiträge: 347
Registriert: 31.08.2004 23:53
Wohnort: Shanghai
Kontaktdaten:

Re: LinkedList und ListconGadget

Beitrag von Lars »

Kiffi hat geschrieben:Chr(#LF)
Noch viel cooler ist eigentlich #LF$ :wink:
Lars
The only problem with troubleshooting is, that sometimes the trouble shoots back.
P4 2,6Ghz, 512MB RAM, GeForce 6200, WinXP Pro SP2, PB V3.94
Antworten