Seite 3 von 5

Verfasst: 30.07.2009 09:38
von mikstart
mk-soft hat geschrieben:Das ist doch nicht viel Code :roll:

Lof(...) funktioniert doch richtig. Habe mal den Code überarbeitet
für mich schon, im moment noch :-)
für das das man daten speichert und ausliest mit datensatznummern.

nochmals danke


gruss mik

Verfasst: 30.07.2009 10:43
von Kiffi
mikstart hat geschrieben:@Kiffi und Kaeru Gaman

lasst mich erst mal laufen lernen und die ganzen grund begriffe von pure basic verstehen, in ein paar monaten können wir mal über sql reden.
sicherlich obliegt die Entscheidung, welchen Weg zu gehen möchtest ganz bei
Dir.

Momentan sehe ich das aber eher so, dass Du unbedingt ein totes Pferd
reiten willst, weil Du der Ansicht bist, durch Deine Kenntnisse in QBasic mit
den Dir vertrauten Befehlen (Konsole, Put & Get) besser voranzukommen.

Put & Get muss nachprogrammiert werden. Diese Arbeit wird Dir ja bereits
freundlicherweise von Michael abgenommen. Zusätzlich bekommst Du von
den Kollegen Hintergrundinformationen.

All dieser Aufwand, damit Du QBasic vertraute Funktionalitäten verwenden
kannst, die Du dann sowieso in absehbarer Zeit gegen PB-Funktionen
ersetzen wirst?

Grüße ... Kiffi

Verfasst: 30.07.2009 12:16
von mikstart
Momentan sehe ich das aber eher so, dass Du unbedingt ein totes Pferd
reiten willst, weil Du der Ansicht bist, durch Deine Kenntnisse in QBasic mit
den Dir vertrauten Befehlen (Konsole, Put & Get) besser voranzukommen.

Put & Get muss nachprogrammiert werden. Diese Arbeit wird Dir ja bereits
freundlicherweise von Michael abgenommen. Zusätzlich bekommst Du von
den Kollegen Hintergrundinformationen.

All dieser Aufwand, damit Du QBasic vertraute Funktionalitäten verwenden
kannst, die Du dann sowieso in absehbarer Zeit gegen PB-Funktionen
ersetzen wirst?

Grüße ... Kiffi

zwar wurde der befehl put und get nachprogrammiert aber dieser eben in pure basic, also lerne ich aus dem code von michael wieder etwas dazu. :wink:

natürlich werde ich irgendwann auf sql umsteigen, aber bevor ich sql lerne möchte ich purebasic lernen.

gruss mik[/quote]

Verfasst: 30.07.2009 13:01
von Kiffi
mikstart hat geschrieben:aber bevor ich sql lerne möchte ich purebasic lernen.
wie gesagt: das sei Dir voll und ganz überlassen, aber noch eine kleine
Anmerkung an dieser Stelle:

OpenDatabase(), DatabaseQuery(), DatabaseUpdate() und CloseDatabase()
sind ebenfalls PureBasic-Befehle ;-)

Grüße ... Kiffi

Verfasst: 30.07.2009 13:15
von Little John
Oder man kann kleinere Datenbanken (um die es hier ja wohl geht) auch z.B. als XML-Dateien realisieren ... ohne SQL. ;-)
XML kann PureBasic von Hause aus.

Gruß, Little John

Verfasst: 30.07.2009 13:22
von Kiffi
Little John hat geschrieben:z.B. als XML-Dateien
... oder CSV, oder Preference-Dateien (sofern nicht die max. Größe
überschritten wird), oder, oder. Der Möglichkeiten sind viele. ;-)

Allerdings halte ich persönlich XML für einen QBasic-Umsteiger für eine Ecke
zu kompliziert. Da ist man schnell mal in der falschen Struktur und
liest oder beschreibt den falschen Node.

Grüße ... Kiffi

Verfasst: 30.07.2009 13:29
von ts-soft
Kiffi hat geschrieben: Allerdings halte ich persönlich XML für einen QBasic-Umsteiger für eine Ecke
zu kompliziert. Da ist man schnell mal in der falschen Struktur und
liest oder beschreibt den falschen Node.

Grüße ... Kiffi
Ich finde XML einfacher, weils logischer ist, SQL ist zu abstrakt, das lag mir
noch nie.

SQL ist als wenn ich mit der Datenbank reden möchte :mrgreen:

Verfasst: 30.07.2009 13:35
von Kiffi
ts-soft hat geschrieben:SQL ist als wenn ich mit der Datenbank reden möchte :mrgreen:
dann musste Dir aber ooch ne Datenbank aussuchen, die SQL mit Berliner
Dialekt versteht. Dann klappt's ooch mitten Abfragen ;-)

Jrüße ... Kiffi (kann nur Ruhrpott-Deutsch, sorry)

Verfasst: 30.07.2009 13:39
von ts-soft
> Jrüße ... Kiffi (kann nur Ruhrpott-Deutsch, sorry)
Ich kann höchstens ein bißchen Platt-Snacken (Hamburger), Berliner am
liebsten mit Erdbeerfüllung :lol:

Gruß .. Thomas

Verfasst: 30.07.2009 15:13
von Kiffi
Kiffi hat geschrieben:
Little John hat geschrieben:z.B. als XML-Dateien
... oder CSV, oder Preference-Dateien (sofern nicht die max. Größe
überschritten wird), oder, oder. Der Möglichkeiten sind viele. ;-)
hier mal die Preference-Variante:

Code: Alles auswählen

EnableExplicit

Structure sItem
  Bezeichnung.s
  Anzahl.s
  Preis.s
EndStructure

Global Datenbankname.s = "items.db"

Procedure GetX(Datensatznummer, *myItem.sItem)
  
  OpenPreferences(Datenbankname)
    
  *myItem\Bezeichnung = ReadPreferenceString("Bezeichnung" + Str(Datensatznummer), "[leer]")
  *myItem\Anzahl      = ReadPreferenceString("Anzahl"      + Str(Datensatznummer), "[leer]")
  *myItem\Preis       = ReadPreferenceString("Preis"       + Str(Datensatznummer), "[leer]")
    
  ClosePreferences()
  
EndProcedure

Procedure PutX(Datensatznummer, *myItem.sItem)
  
  Protected ReturnValue
  
  If FileSize(Datenbankname) = -1
    ReturnValue = CreatePreferences(Datenbankname)
  Else
    ReturnValue = OpenPreferences(Datenbankname)
  EndIf
  
  If ReturnValue
    
    WritePreferenceString("Bezeichnung" + Str(Datensatznummer), *myItem\Bezeichnung)
    WritePreferenceString("Anzahl"      + Str(Datensatznummer), *myItem\Anzahl)
    WritePreferenceString("Preis"       + Str(Datensatznummer), *myItem\Preis)
    
    ClosePreferences()
    
  EndIf
  
EndProcedure

Define Datensatznummer
Define NewItem.sItem

; ein paar Items anlegen...

For Datensatznummer = 800 To 900
  
  NewItem\Bezeichnung = "Bezeichnung" + Str(Datensatznummer)
  NewItem\Anzahl      = "Anzahl" + Str(Datensatznummer)
  NewItem\Preis       = "Preis" + Str(Datensatznummer)
  
  PutX(Datensatznummer, @NewItem)

Next

; ... und wieder auslesen

For Datensatznummer = 800 To 900
  
  GetX(Datensatznummer, @NewItem)
  
  Debug "Datensatz Nr. " + Str(Datensatznummer) + ":"
  Debug "----------------------"
  Debug "Bezeichnung: " + NewItem\Bezeichnung
  Debug "Anzahl: " + NewItem\Anzahl
  Debug "Preis: " + NewItem\Preis
  Debug ""
  
  If Datensatznummer > 810 ; Zu testzwecken reicht es, nur ein paar Datensätze auszugeben
    Break
  EndIf
  
Next
Grüße ... Kiffi

// Edit: Aus kompetenter Wissensquelle (Danke an Thomas!) habe ich
erfahren, dass die oben erwähnte Größenbegrenzung für Preference-
Befehle nicht zutrifft.