Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Alprausch

Anmeldungsdatum: 24.10.2009 Beiträge: 47 Wohnort: Schweiz
|
Verfasst am: 05.05.2010, 08:30 Titel: Sofortige Eingabeverarbeitung |
|
|
Hallo zusammen
Ich habe mal wieder eine Frage.
Wenn ich in QBasic ein Auswahlmenü mache so à la:
1 = Bumm
2 = Peng
etc.
Dann muss ich wenn ich die 1 möchte immer mit Enter bestätigen.
Kann man das umgehen so dass der Befehl sofort ausgeführt wird?
mfg Reto |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
Alprausch

Anmeldungsdatum: 24.10.2009 Beiträge: 47 Wohnort: Schweiz
|
Verfasst am: 05.05.2010, 11:39 Titel: |
|
|
Vielen Dank für deine Antwort.
Nur habe ich leider nicht daran gedacht dass mein Menü relativ gross ist und auch zweistellige Zahlen hat.
Dann geht dein Vorschlag natürlich nicht.
Muss mir mal üverlegen ob ich das Menü umstellen will. Könnte ja etwas mit Buchstaben machen.
mfg Reto |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
Alprausch

Anmeldungsdatum: 24.10.2009 Beiträge: 47 Wohnort: Schweiz
|
Verfasst am: 05.05.2010, 12:57 Titel: |
|
|
Ok. So kann ich es auch machen. Finde ich eine gute Idee.
Noch eine andere Frage...
Wie viele SUB's kann man in einem Programm machen?
Mein Programm wird eine unmenge an SUB's bekommen.
Pro Artikel eine SUB. Ich mache eine Datenbank.
mfg Reto |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
Alprausch

Anmeldungsdatum: 24.10.2009 Beiträge: 47 Wohnort: Schweiz
|
Verfasst am: 05.05.2010, 13:21 Titel: |
|
|
Wie sollte man denn so eine Datenbank programmieren wenn man für jeden Artikel eine eigene "Seite" haben möchte?
mfg Reto |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 05.05.2010, 13:38 Titel: |
|
|
Damit wir dir einen konkreten Lösungsansatz vorschlagen können, müsstest du ein paar weitere Informationen zu deinem Vorhaben posten.
Welche Eigenschaften haben die Artikel/Entity-Typen? Haben sie alle die gleichen Attribute? Sind das numerische Eigenschaften oder Enumerationen oder ...? Beispielsweise ein ERM ist im Vorfeld hilfreich, eine Übersicht zu schaffen.
In QB ist die Datenbankprogrammierung übrigens allgemein nicht besonders angenehm, da man (praktisch) nicht auf aktuelle relationale Datenbanksysteme zugreifen kann. Stattdessen müssen alle Vorgänge manuell mittels Dateioperationen implementiert werden. Ändert sich einmal das Datensatzformat, etwa weil ein zusätzliches Attribut hinzukommt, ist die jeweilige Datei nicht mehr nutzbar und man muss sie umständlich konvertieren.
Wenn du viele "Artikel" mit unterschiedlichen Attributen hast, würde ich zunächst eine Definitionsdatei (z.B. im flexiblen XML-Format) für die Artikel anlegen:
Code: | <Artikel>
<Name>Banane</Name>
<Eigenschaft>
<Name>Kruemmung</Name>
<Datentyp>Integer</Datentyp>
</Eigenschaft>
<Eigenschaft>
<Name>Farbe</Name>
<Datentyp>String*32</Datentyp>
</Eigenschaft>
</Artikel>
<Artikel>
<Name>Apfel</Name>
.... |
Du könntest dann für jeden Bearbeitungsvorgang (Neu, Bearbeiten, ...) jeweils eine SUB für alle Artikel gemeinsam anlegen. Die Felder, die die Bearbeitungsmaske bei einem bestimmten Artikel hat, werden dynamisch aufgebaut anhand der Datensatzdefinitionen aus der obigen Datei. Im Quelltext sind die Attribute dann nicht "hart-kodiert". Die Dateien, in denen die Daten abgelegt werden, müssten auch anhand der Definitionsdatei ausgelesen und geschrieben werden, d.h. das Dateiformat ergäbe sich auch aus der Definitionsdatei.
Auf eine solche Weise könntest du mit einem Quelltext beliebig viele Artikel verwalten ohne für jeden Artikel alle Operationen neu programmieren bzw. per Copy&Paste übertragen zu müssen. _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
 |
Alprausch

Anmeldungsdatum: 24.10.2009 Beiträge: 47 Wohnort: Schweiz
|
Verfasst am: 05.05.2010, 16:28 Titel: |
|
|
So. Jetzt bin ich zu Hause an meinem PC. Endlich ne richtige Tastatur zum schreiben, und nicht die kleine am Handy.
Also, was ich machen möchte.
Ihr kennt ja sicher das Spiel Anno 1602.
Für dieses Spiel möchte ich eine Datenbank erstellen in der man alles nachschauen kann. Es werden also im Nachhinein keine Einträge mehr gemacht. Sollte auf jeden Fall nicht^^
Im Hauptmenü sollen die Punkte:
- Bauliste
- Produktionsketten
- Tastaturbelegung
vorhanden sein.
Wenn ich dann zum Beispiel in die Bauliste gehe soll ein Untermenü kommen in dem ich die Kategorie des Gebäudes auswählen kann. Wenn ich das gemacht habe soll die Liste der Gebäude aus eben gewählter Kategorie kommen. Und wenn ich dann das Gebäude gewählt habe soll ein Datenblatt erscheinen in dem alles über das Gebäude steht.
Es sind aber nicht alle Gebäude gleich. Marktülätze und Kontore haben zum Beispiel Lagerplatz. Wohnhäuser aber haben wiederum Platz für Personen.
Aus diesem Grund denke ich dass eine Vorlage die immer gleich ist nicht in Frage kommt. Lasse mich aber gerne eines besseren belehren.
Ganz aus der Vorlage fällt da sicher die Produktionsketten und die Tastaturbelegung.
Darum kam mir ja die Idee mit den vielen SUB's. Mit den SUB's könnte ich wirklich für alles und jeden Teile einen separaten "Bildschirm" machen. Wegen der Übersicht mache ich mir keine sorgen. Die SUB's bekommen schon Namen.
Zum grössten Problem könnte werden dass ich oben den Programmkopf und unten die Navigation eigentlich immer gleich haben will. Nur der Teil in der Bildmitte soll sich ändern. Was ja mit den SUB's kein Problem wäre. Müsste halt einfach immer alles in jede SUB schreiben. Ist ne Riesenarbeit so. Aber es würde gehen.
Mache es aber gerne anders / richtig wenn das geht. Kenne mich in QB immer noch nicht wirklich gut aus.
mfg Reto |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4699 Wohnort: ~/
|
Verfasst am: 06.05.2010, 00:38 Titel: |
|
|
Ich würde da für die einzelnen Gruppen je ein UDT empfehlen. Bei Waren gibt es ja viele gemeinsamen Punkte (benötigte Waren und Gebäude zur Herstellung, Basispreis(?) usw.) und auch bei Gebäuden gibt es Gemeinsamkeiten, auch wenn sie sich teilweise unterscheiden. Ein Marktplatz würde dann eben die Personenzahl nicht (bzw. mit 0) belegen, ein Wohnhaus lässt den Lagerplatz leer.
Dann kannst du jedes beliebige Gebäude in ein und derselben SUB anzeigen. Ist der Lagerplatz > 0, dann wird er angezeigt; ist er = 0, dann nicht. Entsprechendes für alle anderen Elemente, die nur bei einigen Gebäuden vorkommen. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
Alprausch

Anmeldungsdatum: 24.10.2009 Beiträge: 47 Wohnort: Schweiz
|
Verfasst am: 06.05.2010, 11:30 Titel: |
|
|
uiuiui das sieht aber kompliziert aus...
Ich glaube daraus werde ich nicht schlau. Sorry.
Für solch grosse/komplexe Programme fehlt mir einfach noch die Erfahrung.
Das Programm soll nur ein Nachschlagewerk sein. Ich möchte damit keine Speicherstände editieren können. Will ja keine Cheater unterstützen
Wie würde denn das mir der xml-Datei funktionieren? Habe noch nie davon gehört. Ich könnte dann ja alle Gebäude im gleichen Stil anzeigen lassen.
Und wie rufe ich dann die Daten aus der xml-Datei ab?
edit: Ich krieg nicht mal das mit der sofortigen Eingabeausführung hin. Habe es aber genau so geschrieben wie oben gezeigt...
mfg Reto |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4699 Wohnort: ~/
|
Verfasst am: 06.05.2010, 15:44 Titel: |
|
|
Um die Daten aus der XML-Datei herauszuholen, musst du die Datei durch einen XML-Parser jagen. Gibt dafür schon ein paar Lösungen. Für meinen patfinder habe ich selbst einen kleinen Parser geschrieben und beigelegt; im selben Thread werden zwei weitere empfohlen. Ist jetzt aber FreeBASIC-spezifisch; ob sich der Parser ohne Änderung in QBASIC verwenden lässt, kann ich nicht garantieren.
Ansonsten hat mein Parser den Vorteil der einfachen Einsetzbarkeit und den Nachteil der fehlenden Dokumentation ...
Zur sofortigen Eingabe-Ausführung:
Code: | DO
PRINT "Was wollen Sie ansehen?"
PRINT "(01) Waren"
PRINT "(02) Gebäude"
PRINT "..."
PRINT "(99) Programmende"
eingabe$ = INPUT$(2)
SELECT CASE eingabe$
CASE "01"
Warenmenue
CASE "02"
Gebaeudemenue
END SELECT
LOOP UNTIL eingabe$ = "99" |
_________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
Alprausch

Anmeldungsdatum: 24.10.2009 Beiträge: 47 Wohnort: Schweiz
|
Verfasst am: 07.05.2010, 05:42 Titel: |
|
|
Jetzt wird's definitiv kompliziert
Muss ich das jetzt wirklich mit SUB's machen weil ich es nicht anders verstehe?
Gibt es nicht irgendwo eine Anleitungfür Idioten die auch ich verstehen sollte?
mfg Reto |
|
Nach oben |
|
 |
|