Speichern von Daten aus einem ListViewGadget ???

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
sebsch80
Beiträge: 53
Registriert: 28.09.2006 20:28
Wohnort: Suhl
Kontaktdaten:

Speichern von Daten aus einem ListViewGadget ???

Beitrag 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?
PureBasic 4.00 / Anfänger
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Speichern von Daten aus einem ListViewGadget ???

Beitrag von Kiffi »

> Wie lese ich die Daten aus?

mit GetGadgetItemText()

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
sebsch80
Beiträge: 53
Registriert: 28.09.2006 20:28
Wohnort: Suhl
Kontaktdaten:

Beitrag 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.
PureBasic 4.00 / Anfänger
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag 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
a²+b²=mc²
Benutzeravatar
Mr.X
Beiträge: 66
Registriert: 10.08.2005 22:46
Wohnort: im schönen OWL

Beitrag von Mr.X »

Kiffi hat geschrieben:[...]
was sagt denn die Hilfe zu diesem Befehl?
[...]
Eigentlich alles. Man muß sie nur lesen !!

Mr.X
Benutzeravatar
sebsch80
Beiträge: 53
Registriert: 28.09.2006 20:28
Wohnort: Suhl
Kontaktdaten:

Beitrag 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
Zuletzt geändert von sebsch80 am 22.10.2006 00:04, insgesamt 1-mal geändert.
PureBasic 4.00 / Anfänger
Benutzeravatar
sebsch80
Beiträge: 53
Registriert: 28.09.2006 20:28
Wohnort: Suhl
Kontaktdaten:

Beitrag 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.
PureBasic 4.00 / Anfänger
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag 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
a²+b²=mc²
Benutzeravatar
Mr.X
Beiträge: 66
Registriert: 10.08.2005 22:46
Wohnort: im schönen OWL

Beitrag 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
Benutzeravatar
PBZecke
Beiträge: 399
Registriert: 02.09.2004 17:34

Beitrag 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.
Nein, ich habe die Suche nicht benutzt, und deshalb auch nichts dazu gefunden... :lol:
Antworten