Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Sofortige Eingabeverarbeitung

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Alprausch



Anmeldungsdatum: 24.10.2009
Beiträge: 47
Wohnort: Schweiz

BeitragVerfasst am: 05.05.2010, 08:30    Titel: Sofortige Eingabeverarbeitung Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 05.05.2010, 10:37    Titel: Antworten mit Zitat

Hallo,

in dem Fall kann die Funktion INPUT$(...) verwendet werden (siehe gleiche Frage).

Code:
DIM k AS STRING
CLS
PRINT "Bitte drueck eine Taste."
PRINT "Zum Beenden des Programms ESC druecken."
DO
   k = INPUT$(1)
   IF k = CHR$(27) THEN EXIT DO
   PRINT "Du hast "; k; " gedrueckt."
LOOP
END


Viele Grüße!
Sebastian
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Alprausch



Anmeldungsdatum: 24.10.2009
Beiträge: 47
Wohnort: Schweiz

BeitragVerfasst am: 05.05.2010, 11:39    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 05.05.2010, 11:59    Titel: Antworten mit Zitat

Oder du lässt immer zwei Zeichen eingeben ...
Code:
INPUT$(2)

... und forderst bei einstelligen Zahlen eine führende Null:
Code:
 (01) Brezeln
 (02) Pommes
 (03) Pizza
 ...
 (42) Bratwurst

_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Alprausch



Anmeldungsdatum: 24.10.2009
Beiträge: 47
Wohnort: Schweiz

BeitragVerfasst am: 05.05.2010, 12:57    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 05.05.2010, 13:18    Titel: Antworten mit Zitat

Alprausch hat Folgendes geschrieben:
Mein Programm wird eine unmenge an SUB's bekommen.
Pro Artikel eine SUB. Ich mache eine Datenbank.

Das klingt nach einem ziemlich unvorteilhaften Konzept. Solche Redundanzen sollte man eigentlich vermeiden.
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Alprausch



Anmeldungsdatum: 24.10.2009
Beiträge: 47
Wohnort: Schweiz

BeitragVerfasst am: 05.05.2010, 13:21    Titel: Antworten mit Zitat

Wie sollte man denn so eine Datenbank programmieren wenn man für jeden Artikel eine eigene "Seite" haben möchte?

mfg Reto
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 05.05.2010, 13:38    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Alprausch



Anmeldungsdatum: 24.10.2009
Beiträge: 47
Wohnort: Schweiz

BeitragVerfasst am: 05.05.2010, 16:28    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 05.05.2010, 21:51    Titel: Antworten mit Zitat

Zum Thema Menü: Downloadbeispiel

http://beilagen.dreael.ch/QB/MENUE.BAS

genauer anschauen. Artikel zum Thema Bildschirmmasken:

http://www.dreael.ch/Deutsch/BASIC-Knowhow-Ecke/BildschirmMasken.html

Zum genannten Spiel: Willst Du irgendwelche Spielstanddateien modifizieren können oder soll das Ganze eine vollkommen unabhängige Applikation geben?
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4699
Wohnort: ~/

BeitragVerfasst am: 06.05.2010, 00:38    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Alprausch



Anmeldungsdatum: 24.10.2009
Beiträge: 47
Wohnort: Schweiz

BeitragVerfasst am: 06.05.2010, 11:30    Titel: Antworten mit Zitat

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 zwinkern

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
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4699
Wohnort: ~/

BeitragVerfasst am: 06.05.2010, 15:44    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Alprausch



Anmeldungsdatum: 24.10.2009
Beiträge: 47
Wohnort: Schweiz

BeitragVerfasst am: 07.05.2010, 05:42    Titel: Antworten mit Zitat

Jetzt wird's definitiv kompliziert traurig traurig

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? mit den Augen rollen

mfg Reto
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz