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:

eingabe beschränken

 
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
Mr.Schrotti



Anmeldungsdatum: 05.12.2007
Beiträge: 13

BeitragVerfasst am: 07.04.2008, 08:38    Titel: eingabe beschränken Antworten mit Zitat

Hi,

ich muss irgendwie die eingabe länge im eingabe feld beschränken z.B. das man nur 10 Zeichen eintippen kann. Geht das irgendwie??

Gruß Mr.Schrotti
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Heizi



Anmeldungsdatum: 19.01.2005
Beiträge: 309

BeitragVerfasst am: 07.04.2008, 08:50    Titel: Antworten mit Zitat

Da gibts 2 Möglichkeiten:
Du kannst ganz normal mit Input arbeiten und dann mit left$
die Länge beschränken.
Oder du programmierst die Input Funktion selber mit INKEY$

MfG
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Manuel



Anmeldungsdatum: 23.10.2004
Beiträge: 1271
Wohnort: Bayern

BeitragVerfasst am: 07.04.2008, 11:37    Titel: Antworten mit Zitat

Wurde in der "QB-MonsterFAQ" schon beantwortet:

http://www.antonis.de/faq/qbmonfaq-dateien/1186285581.html

Allgemein:
QB-MonsterFAQ zwinkern

Allgemein kommst du um eine selbstprogrammierte SUB oder FUNCTION kaum herum, da QB von sich aus so eine Funktion nicht erlaubt...
_________________
DL Walk (Denkspiel) | DL Malek (Denkspiel) | DL Warrior (ASCII-Adventure) | DL Sokodos (Sokoban-Klon)
---
www.astorek.de.vu
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger
Mr.Schrotti



Anmeldungsdatum: 05.12.2007
Beiträge: 13

BeitragVerfasst am: 07.04.2008, 16:11    Titel: Antworten mit Zitat

Ohmann wieso muss Qbasic bloß so schwirig sein traurig
Gibts sonst möglichkeiten um einen Überlauf zu verhindern bei Qbasic? Das vorraussetzung für unser Taschenrechner Projekt für die schule.


Gruß Mr.Schrotti

ps. wie geht das mit left$ ??
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


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

BeitragVerfasst am: 07.04.2008, 16:58    Titel: Antworten mit Zitat

Siehe

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

dort stelle ich einen solchen INPUT-Ersatz übrigens vor, der sich für Eingabemasken eignet. Kann man beliebig ausbauen.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Heizi



Anmeldungsdatum: 19.01.2005
Beiträge: 309

BeitragVerfasst am: 07.04.2008, 17:53    Titel: Antworten mit Zitat

Code:

input t$
t$=left$(t$,10)
print t$

sleep

Die Länge wird allerdings erst nachträglich korrigiert.
MfG

/edit
so gehts vielleicht auch:
do
input t$
loop until len(t$) <=10
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Random



Anmeldungsdatum: 09.03.2006
Beiträge: 47

BeitragVerfasst am: 07.04.2008, 19:28    Titel: Antworten mit Zitat

Also ich würde das mit inkey$ und einer Schleife machen. zwinkern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 07.04.2008, 20:34    Titel: Antworten mit Zitat

@Random:
Siehe QBMonsterFAQ.
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
wolfjuli



Anmeldungsdatum: 06.03.2008
Beiträge: 50

BeitragVerfasst am: 08.04.2008, 07:37    Titel: Antworten mit Zitat

@Heizi:

Ich denke dein Vorschlag im Edit-Beriech wird nicht laufen, da der Befehl "input" erst dann beendet ist, wenn man die eingabetaste drückt.
_________________
Alles sollte so einfach wie möglich gemacht werden, aber nicht einfacher.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Random



Anmeldungsdatum: 09.03.2006
Beiträge: 47

BeitragVerfasst am: 08.04.2008, 08:36    Titel: Antworten mit Zitat

Mao, meine Methode ist zwar vielleicht nicht ganz so professionell, doch ist sie sehr simpel und funktioniert auch. Was soll ich da also noch den Doktor machen; es muss doch nicht immer kompliziert sein, sondern auch für Anfänger verständlich. Was bingt ihm ein Code, wenn er gar nicht weiss wie er funktioniert. zwinkern

Code:

do
sleep
print inkey$;
if n=9 then exit do
n=n+1
loop
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
SpionAtom



Anmeldungsdatum: 10.01.2005
Beiträge: 395

BeitragVerfasst am: 08.04.2008, 10:26    Titel: Antworten mit Zitat

Deine Routine hört aber nach exakt 10 Zeichen auf, weniger Zeichen beenden die Routine nicht. (Naja feht halt die Enter-abfrage( CHR$(13) )

Wenn man exakt eine gewisse Anzahl Zeichen braucht, so gibt es dafür einen Befehl glaub ich. Such mal nach INPUT$(x):
Code:

text$ = INPUT$(10)

_________________
Inzwischen gehöre ich auch zu den BlitzBasicern. Also verzeiht mir, wenn mir mal ein LOCATE 100, 100 oder dergleichen rausrutscht.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Heizi



Anmeldungsdatum: 19.01.2005
Beiträge: 309

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

Zitat:

dim n as integer
dim t as string
dim eingabe as string*10
n=0
eingabe=""
do
sleep
t=inkey$

if n=9 or t=chr$(13) then exit do
print t;
eingabe=eingabe+t
n=n+1
loop
print ""
Print eingabe


ich habdas mal auf die Schnelle modifiziert.
Das ganze ist von einem sinnvollen Eingabemaske allerdings noch weit entfernt. Kannst ja noch versuchen das mit dem Backspace einzubauen...
Hmm mir fällt der asc Wert grad net ein
MfG
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 08.04.2008, 17:06    Titel: Antworten mit Zitat

chr(8 )... in der qb-city gab's dazu mal ne schöne aufgabe, da findet ihr auch meine routine...
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 09.04.2008, 15:39    Titel: Antworten mit Zitat

@Random:
Hab ich nie behauptet, und ich bin auch dafür, dass man nur Routinen benutzen sollte, die man versteht und auch selbst schreiben kann. (Bibliotheken für komplexere Dinge mal ausgenommen.)
Nur war deins eben genau der dort auch genutzte Weg.
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mr.Schrotti



Anmeldungsdatum: 05.12.2007
Beiträge: 13

BeitragVerfasst am: 13.04.2008, 16:37    Titel: Antworten mit Zitat

danke schonmal für die Zahlreichen antworten lächeln habs jez noch nicht eingebaut aber hat sonst noch jemand verbesserungsvorschläge für mein Programm? Soll ein einfacher Taschenrechner sein

Code:

REM Rechner Markus Steckel und Tobias Friede
REM rech0001.bas 21-01-08




start:
CLS
LOCATE 4, 20
PRINT " **************************************"
LOCATE 5, 20
PRINT "          +Rechnen fr Deppen+"
LOCATE 6, 20
PRINT " **************************************"
SLEEP 3

menue:
CLS
LOCATE 5, 20
PRINT "Waehle deine Rechenart aus"
LOCATE 7, 20
PRINT "Rechnen   (1)"
LOCATE 8, 20
PRINT "Sinus     (2)"
LOCATE 9, 20
PRINT "Wurzeln   (3)"
LOCATE 14, 20
PRINT "Beenden   (6)"


LOCATE 16, 20
PRINT "mit ENTER best„tigen"
LOCATE 16, 40
INPUT a
IF a = 1 THEN
GOSUB rechnen
ELSEIF a = 2 THEN
GOSUB SINUS
ELSEIF a = 3 THEN
GOSUB wurzeln
ELSEIF a = 6 THEN
END IF
END


rechnen:
CLS
LOCATE 5, 20
PRINT "Zahl eingeben "
LOCATE 6, 40
INPUT b
LOCATE 7, 20
PRINT "2. Zahl eingeben"
LOCATE 8, 40
INPUT C
LOCATE 10, 20
INPUT "Rechenzeichen eingeben:", rz$

IF rz$ = "+" THEN
d = b + C

ELSEIF rz$ = "-" THEN
d = b - C

ELSEIF rz$ = "*" THEN
d = b * C

ELSEIF rz$ = "/" THEN
d = b / b
ELSE
LOCATE 16, 20
PRINT "Das ist KEIN Rechenzeichen"
SLEEP
RETURN
END IF

LOCATE 10, 20
PRINT "Dein Ergebnis"; b; rz$; C; "="; d
LOCATE 12, 20
PRINT "M”chtest du zurck zu dem Men"
LOCATE 13, 20
PRINT "oder das Programm beenden ???"
LOCATE 14, 20
PRINT " (1) Zurck zum Men"
LOCATE 15, 20
PRINT " (2) Beenden"
LOCATE 16, 20
INPUT e
IF e = 1 THEN
GOTO menue
END IF
IF e = 2 THEN
END IF
END

SINUS:
CLS
SCREEN 12
pi = 3.141593
INPUT "Amplitude "; amplitude
INPUT "Frequenz "; frequenz
LINE (0, 0)-(0, 479), 15
LINE (0, 240)-(639, 240), 15
FOR xpixel = 0 TO 639 STEP .1
  winkel = 2 * pi * xpixel / 639
y = amplitude * SIN(winkel * frequenz)
ypixel = y * -24 + 240
PSET (xpixel, ypixel), 12
NEXT

PRINT "Enter um zum Men zurck zu kommen."
SLEEP

GOTO menue
END
 

wurzeln:
CLS
LOCATE 10, 20
INPUT "Zahl eingeben"; a
LOCATE 12, 20
PRINT "Die Wurzel ist:"; SQR(a)

LOCATE 14, 20
PRINT "M”chtest du zurck zu dem Men"
LOCATE 15, 20
PRINT "oder das Programm beenden ???"
LOCATE 16, 20
PRINT " (1) Zurck zum Men"
LOCATE 17, 20
PRINT " (2) Beenden"
LOCATE 18, 20
INPUT e
IF e = 1 THEN
GOTO menue
END IF
IF e = 2 THEN
END
END IF


ende:
END


[quote][/quote]
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