Seite 1 von 2

Zählen der tatsächlich vorhandenen Datensätze

Verfasst: 17.04.2008 10:17
von Ironsmurf
Hallo zusammen

ich beschäftige mich mit einer Datenbank, in der max. 10 000 Datensätze liegen können.
Wie muß eine Schleife aussehen, die mir die bis jetzt vorhandenen Datensätze zählt.

Vielen Dank im voraus

Code: Alles auswählen

Structure Movie
           Code$
           Name$
           Star$
           Info$
           Regi$
           Jahr$
           Lang$
           Trai$
  EndStructure

;################################################################

Dim DVD.Movie(9999)

  DVD (0001) \ Code$ = "0001"
  DVD (0001) \ Name$ = "Cocktail"
  DVD (0001) \ Star$ = "Tom Cruise, Bryan Brown, Elisabeth Shue"
  DVD (0001) \ Info$ = "A001"
  DVD (0001) \ Regi$ = "Roger Donaldson"
  DVD (0001) \ Jahr$ = "1988"
  DVD (0001) \ Lang$ = "103"
  DVD (0001) \ Trai$ = "001A"

Re: Zählen der tatsächlich vorhandenen Datensätze

Verfasst: 17.04.2008 10:57
von Kiffi
kommt drauf an. Ist Code$ ein Pflichtfeld? Können Lücken vorhanden sein?

Code: Alles auswählen

Anzahl_Datensaetze=0

For Counter = 0 To 9999
  If DVD(Counter)\Code$ <> ""
    Anzahl_Datensaetze + 1
  EndIf
Next

Debug Str(Anzahl_Datensaetze) + " Datensätze vorhanden"
Grüße ... Kiffi

Verfasst: 17.04.2008 11:24
von Ironsmurf
Code$ & Name$ sind Pflichtfelder !

Doppelpost entfernt [Falko]

Verfasst: 17.04.2008 11:41
von Kiffi
Ironsmurf hat geschrieben:Code$ & Name$ sind Pflichtfelder !
ja, dann kannst Du ja meinen Code nehmen.

Allerdings würde ich persönlich kein Array sondern eine LinkedList
verwenden. Aber das ist Geschmackssache...


Grüße ... Kiffi

P.S.: Bitte Doppelpostings vermeiden. Dafür gibt es den Edit-Button.

Re: Zählen der tatsächlich vorhandenen Datensätze

Verfasst: 17.04.2008 12:10
von scholly
Ironsmurf hat geschrieben:ich beschäftige mich mit einer Datenbank, in der max. 10 000 Datensätze liegen können.
Ist die nur für Kauf-DVDs oder auch für Selbstgebranntes?
Wie muß eine Schleife aussehen, die mir die bis jetzt vorhandenen Datensätze zählt.
Darf man fragen, wann/wo/wie Du die Daten abspeicherst?
Vielleicht kann man dort die Anzahl direkt auslesen.
Kiffi hat geschrieben:Allerdings würde ich persönlich kein Array sondern eine LinkedList verwenden.
Aber das ist Geschmackssache...
Oder direkt aus einer SQL(ite)-DB heraus benutzen, falls er es dort abspeichert :wink:

Re: Zählen der tatsächlich vorhandenen Datensätze

Verfasst: 17.04.2008 12:18
von Kiffi
scholly hat geschrieben:Oder direkt aus einer SQL(ite)-DB heraus benutzen, falls er es dort abspeichert :wink:
ja, das wäre natürlich die optimale Vorgehensweise. Allerdings vermute ich,
dass Ironsmurf die Daten aus einer Textdatei ausliest.

Grüße ... Kiffi

Re: Zählen der tatsächlich vorhandenen Datensätze

Verfasst: 17.04.2008 12:35
von scholly
Kiffi hat geschrieben:Allerdings vermute ich, dass Ironsmurf die Daten aus einer Textdatei ausliest.
Das vermute ich ja auch, weil ich mit meiner Video-Verwaltung damals auch mit CSV angefangen habe.
Allerdings war Dein "Bekehrungsversuch" :wink: dank der nachfolgenden Unterstützung aus vielen Ecken so erfolgreich, daß ich den Einsatz von SQLite nicht mehr missen möchte :lol:

Re: Zählen der tatsächlich vorhandenen Datensätze

Verfasst: 17.04.2008 14:33
von AND51

Code: Alles auswählen

Define n, Anzahl_Datensaetze=0

For Counter = 0 To 9999
  If Not DVD(n)\Code$
     Break
  EndIf
  Anzahl_Datensaetze+1
Next

Debug Str(Anzahl_Datensaetze) + " Datensätze vorhanden"
Sooo ist's besser :lol:

Re: Zählen der tatsächlich vorhandenen Datensätze

Verfasst: 17.04.2008 14:35
von Kiffi
AND51 hat geschrieben:Sooo ist's besser :lol:
nope. Man kann nicht davon ausgehen, dass die 'Datensätze' lückenlos gefüllt
sind, solange Ironsmurf meine Frage nicht beantwortet hat:
Kiffi hat geschrieben:Können Lücken vorhanden sein?

Grüße ... Kiffi

Verfasst: 17.04.2008 14:39
von AND51
OK, da hast du natürlich Recht.
Übrigens würde ich genau wie du genau aus diesem Grunde zu LinkedLists tendieren.

@ Ironsmurf:
Benutze bitte LinkedLists, dann kannst du die Anzahl der Datensätze direkt und bequem mit CountList() ermitteln!!
Außerdem kannst du Lücken vermeiden, denn "leere" Felder kannst du mit DeleteElement() löschen!!