Seite 1 von 2

Speichern von Daten aus einem ListViewGadget ???

Verfasst: 21.10.2006 23:19
von sebsch80
Hallo,

ich bekomme es nicht hin Daten aus einem ListViewGadget zu speichern.

Wie lese ich die Daten aus?

Gibts da nen besonderen Befehl?

Re: Speichern von Daten aus einem ListViewGadget ???

Verfasst: 21.10.2006 23:29
von Kiffi
> Wie lese ich die Daten aus?

mit GetGadgetItemText()

Grüße ... Kiffi

Verfasst: 21.10.2006 23:36
von sebsch80
@Kiffi
mit GetGadgetItemText()
nimmt er dann alle Werte(Zeilen) aus der Liste oder nur einen bestimmtes?

Ich will es danach wieder in einem neuen Programm einlesen und da brauche ich alle in das ListViewgadget eingetragenen Werte.

Verfasst: 21.10.2006 23:40
von Kiffi
> nimmt er dann alle Werte(Zeilen) aus der Liste oder nur einen bestimmtes?

was sagt denn die Hilfe zu diesem Befehl?

> Ich will es danach wieder in einem neuen Programm einlesen und da
> brauche ich alle in das ListViewgadget eingetragenen Werte.

Du musst mit einer Schleife über alle Zeilen des ListIconGadgets laufen.
Hierin hast Du eine weitere Schleife über alle Spalten der aktuellen Zeile.

Grüße ... Kiffi

Verfasst: 21.10.2006 23:53
von Mr.X
Kiffi hat geschrieben:[...]
was sagt denn die Hilfe zu diesem Befehl?
[...]
Eigentlich alles. Man muß sie nur lesen !!

Mr.X

Verfasst: 21.10.2006 23:58
von sebsch80
Aus der hilfe ist nicht herauszulesen ob alle Einträge aus der ListViewGadget gelesen werden.

Ausserdem funktioniert der befehl bei mir nicht, ich bekomm immerzu die Fehlermeldung. "Incorrect Number of Parameters"

Also mach ich irgendwas am Eintrag des Befehls falsch, hab aber keine ahnung was.

Das hatte ich jetzt nur für den ersten Wert in der Liste gedacht.

Code: Alles auswählen

If OpenWindow(0,100,100,440,150,"Fenster 1",#PB_Window_SystemMenu|#PB_Window_ScreenCentered) 
  If CreateGadgetList(WindowID(0)) 
    TextGadget(1,28,35,120,20,"Gesuchter Schein") 
    StringGadget(2,20,65,120,20,"") 
    TextGadget(3,168,35,120,20,"Neuer Schein") 
    StringGadget(4,150,65,120,20,"") 
    ButtonGadget(5,160,105,100,20,"Hinzufügen") 
    ListViewGadget(6,300,30,120,100) 
    ButtonGadget(7,32,105,100,20,"Vergleichen") 
   If CreateToolBar(0, WindowID(0))
    ToolBarStandardButton(10, #PB_ToolBarIcon_New)
    ToolBarStandardButton(11, #PB_ToolBarIcon_Open)
    ToolBarStandardButton(12, #PB_ToolBarIcon_Save)
   EndIf
    
  EndIf 
  Repeat 
    EventID = WaitWindowEvent() 
      If EventID = #PB_Event_CloseWindow 
        Quit = 1 
      EndIf 
      
      If EventID = #PB_Event_Menu
  If EventMenu()=10
        SetGadgetText(2,"")
        ClearGadgetItemList(6)
  EndIf
;-----------------------------------------------------
;-  Speichern
  If EventMenu()=12
    StandardDatei$ = "C:\test.txt"
    Pattern$ = "Text-Dateien (*.txt)|*.txt|Alle Dateien (*.*)|*.*"
    PatternPosition = 0
    DateiName$ = SaveFileRequester("Speichern unter...", StandardDatei$, Pattern$, PatternPosition) 
    If CreateFile (0,DateiName$)
       GetGadgetItemText(6,1)
       Else
     MessageRequester("","nix create file",0)
   EndIf
    CloseFile(0)
  EndIf
 ;------------------------------------------------------
      EndIf
      If EventID = #PB_Event_Gadget 
        If EventGadget()=5 
          a$=GetGadgetText(4) 
          If a$ = "" 
           MessageRequester("Fehler","Ich vermisse die Eingabe",0) 
          Else 
           AddGadgetItem(6,-1,""+a$) 
           SetGadgetText(4,"") 
           SetActiveGadget(4) 
          EndIf 
        EndIf 
      EndIf 
        
      If EventID = #PB_Event_Gadget 
       If EventGadget()=7 
        Gesucht$ = GetGadgetText(2) 
        Anz = CountGadgetItems(6) 
        For i = 0 To Anz - 1 
         SetGadgetState(6, i) 
         Vorhandene$ = GetGadgetText(6) 
         If Mid(Gesucht$,1,Len(Gesucht$)) = Mid(Vorhandene$,1,Len(Vorhandene$)) 
          control = control + 1 
         Else 
          control = control + 0 
         EndIf 
        Next i 
       If control = 0 
        MessageRequester("","Leider nichts",0) 
       Else 
        MessageRequester("","Gewonnen",0) 
       EndIf 
       SetGadgetText(2,"") 
       SetGadgetText(4,"") 
       ClearGadgetItemList(6) 
      EndIf 
        
     EndIf 
      
  Until Quit=1 
  CloseWindow(0) 
EndIf

Verfasst: 22.10.2006 00:02
von sebsch80
@Mr.X

Ich hab die Hilfe gelesen und zwar schon seit 2 Stunden.
Komme aber zu keiner Lösung.
Hier ist ein Forum für Anfänger (was ich bin) und deshalb sind meine Fragen wohl berechtigt.

Verfasst: 22.10.2006 00:12
von Kiffi
> Ich hab die Hilfe gelesen und zwar schon seit 2 Stunden.

glaube ich Dir nicht. ;-)

Egal:

Code: Alles auswählen

For ZeilenZaehler = 0 to CountGadgetItems(DeinListIconGadget) - 1
 For SpaltenZaehler = 0 to AnzahlSpalten - 1
  Debug "Zeile: " + Str(ZeilenZaehler)
  Debug "Spalte: " + Str(SpaltenZaehler)
  Debug GetGadgetItemText(DeinListIconGadget, ZeilenZaehler, SpaltenZaehler
 Next ; SpaltenZaehler
Next ; ZeilenZaehler
Grüße ... Kiffi

Verfasst: 22.10.2006 00:50
von Mr.X
sebsch80 hat geschrieben:@Mr.X

Ich hab die Hilfe gelesen und zwar schon seit 2 Stunden.
Komme aber zu keiner Lösung.
Hier ist ein Forum für Anfänger (was ich bin) und deshalb sind meine Fragen wohl berechtigt.
Gut, ich glaub Dir mal.

Aber ich denke Dein Problem liegt an anderer Stelle. Du benötigst eine Matrix aus n Zeilen und m Spalten. Dazu verwendet man das ListIconGadget. Mit AddGadgetColumn kannst Du zur ersten Spalte beliebg weitere hinzufügen. Das machst Du bereits beim Erstellen Deiner Gadgetliste (CreateGadgetList). Ein leeres Element fügst Du mit AddGadgetItem hinzu. Und den Inhalt der Zellen (Spalte 0 bis m-1) in der Zeile n-1, wobei n durch Mitzählen der AddGadgetItems beginnend bei 1 oder mittelns CountGadgetItems ermittelt wird.

Das ListViewGadget besteht in Gegensatz zum ListIconGadget nur aus einer Spalte.

Genaue Informationen zu den Parametern der einzelnen Kommandos findest Du in der Hilfe - ehrlich. Gut jetzt mußt Du wirklich 2 Stunden lesen um alles zu verstehen und richtig zu kombinieren.

Aber die Nacht hat ja grad erst begonnen und heute ist Sonntag.

Viel Spass
Mr.X

Verfasst: 22.10.2006 12:30
von PBZecke
Kiffi hat geschrieben:> Ich hab die Hilfe gelesen und zwar schon seit 2 Stunden.

glaube ich Dir nicht. ;-)

Egal:

Code: Alles auswählen

For ZeilenZaehler = 0 to CountGadgetItems(DeinListIconGadget) - 1
 For SpaltenZaehler = 0 to AnzahlSpalten - 1
  Debug "Zeile: " + Str(ZeilenZaehler)
  Debug "Spalte: " + Str(SpaltenZaehler)
  Debug GetGadgetItemText(DeinListIconGadget, ZeilenZaehler, SpaltenZaehler
 Next ; SpaltenZaehler
Next ; ZeilenZaehler
Grüße ... Kiffi
Und Du seine Anfrage nicht :wink: Er fragt nach einem
ListViewGadget, nicht nach einem ListIconGadget.
(Sorry, konte ich mir jetzt nicht verkneifen...)


Zum Thema:
Habe noch nicht mit einem ListView in PB gearbeitet, aber wenn ich die
PB-Hilfe richtig verstanden habe mach es einfach so: In einer Schleife
jedes Element mit GetGadgetItemText() auslesen. Im Parameter spalte
eine 0 angeben, wird ignoriert, aber was reinschreiben musst Du, damit
der Compiler nicht meckert.