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:

Eingabefehler abfangen..

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



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 02.05.2006, 15:17    Titel: Eingabefehler abfangen.. Antworten mit Zitat

Hi,
frei nach Murphy läßt sich ein Programm nicht gegen alle möglichen Eingabefehler absichern..
Ein paar Vorkehrungen lassen sich jedoch treffen. Leider liefert die Funktion Val(AnyString$)
als Ergebnis 0, wenn der String unzulässige Zeichen enthält, aber auch, wenn der String wirk-
lich 0 ist(z.B.: "&b0000000000000000000"), das ist kein Kriterium dafür, ob ein Fehler vorliegt.
Bis jetzt!
Meine Function NumericError(EingabeString) liefert die Position des fehlerhaften Zeichens
bzw. 0, wenn kein Fehler vorliegt..
(sogar mit invertiertem Text..)
[Edit]
jetzt gehts..
Wieso???
[/Edit]
Viel Spaß beim Ausprobieren
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..

Zuletzt bearbeitet von ytwinky am 09.07.2007, 18:36, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 02.05.2006, 15:56    Titel: Antworten mit Zitat

http://nopaste.freebasic.de/?view=http://ytwinky.freebasic.de/freebasic/numericerror.bas

grinsen

/edit: MECKIIII traurig du machst alles so halb kaputt mit deinem listenzeug
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 02.05.2006, 16:19    Titel: Antworten mit Zitat

Ach, habe ich das auch in nopaste gestellt? lachen
Im Ernst: Ich hab' gedacht, ich kann da nur bis 2Kb reinstellen
oder zerwechsel ich da jetz was??
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 02.05.2006, 16:41    Titel: Antworten mit Zitat

nopaste hat direkthighlighting, wenn du die datei bei dir aufm server löschst ist sie im nopaste auch nicht mehr erreichbar. Das teil geht einfach hin, läd die von deinem server und zeigt sie gehighlighted an, wenn du sie auf deinem server änderst ist sie im nopaste auch geändert. ganz einfach happy
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 02.05.2006, 17:25    Titel: Antworten mit Zitat

Gute Idee!

Hier einige weitere Ideen:
Du könntest , gleichbedeuten mit . machen

(Tipp am Rande: Eigentlich gehört es zu "Projektvorstellungen")
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 02.05.2006, 21:23    Titel: Antworten mit Zitat

das wird aber von val nicht richtig angenommen, print val("1,5") gibt nur 1 aus, bei dem , schneidet er das ganze ab. das müsstest du eh ersetzen, dann kannste das auch vor der überprüfung machen.
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 02.05.2006, 21:59    Titel: Antworten mit Zitat

Stop, Stop Stop..
Ich weiß genau, was Michael meint..
Ich hatte in einer ersten Version von NumericError auch eine Umwandlung von Potenzen eingebaut. NumericError hätte dann z.B. 2^31 umgewandelt
in die entsprechende DezimalZahl. Da s$ aber byRef übergeben wird, ginge
der EingabeString flöten, also habe ich es gelassen..
Nun zum ',': Sicherlich habe ich daran gedacht, bin aber nicht wirklich betroffen, da ich bei mir auf dem Ziffernblock kein Komma mehr habe(Registry Wizard sei Dank..)
Wie bei den Potenzen, habe ich mich dazu entschieden fertige Strings zu bewerten und als einzige Umwandlung die in GroßBuchstaben zuzulassen..
(Ähm, Geheimnis: Irgendwo in meinem Hinterkopf geistert noch eine eigene
Input-Routine herum, die sollte sowas dann erledigen..)
Aber ich denke drüber nach zwinkern
Zement mal
[Edit]
Hätte ich nie gedacht, daß ich das auch mal schreiben darf:
@Michael Frey:
..fixed
Wichtig ist dabei, daß die Eingabezeile geändert wird!!!
Statt Input "blabla", s$
Muß es jetzt heißen: LINE Input "blabla", s$
wg. Input liest ',' als DatenTrenner, für die dies nicht wußten zwinkern
@MisterD:
Ich bin begeistert, die Änderung klappt ja wirklich..
[Edit2]
Ich habe als 2.(wahlfreien)Parameter comma$="," eingefügt.
So kann die Komma-Auswertung durch Übergabe von "." abgeschaltet werden
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 09.07.2007, 17:35    Titel: Antworten mit Zitat

Hi,
eigentlich dachte ich, NumericError wäre fertig..
..aber nach Murphy ist ein Programm ja nie fertig happy
Egal, ich habe mal alle unnötigen Mid()-Aufrufe in NumericError entfernt und
dabei auch gleich einen 'Fehler' berichtigt:
NumericError ließ die Eingabe von 4E ohne Fehlermeldung duchgehen,
das ist zwar irgendwo richtig(4E=~4E0 und damit 4) es kann aber auch sein, daß &h4E gemeint war, jedenfalls ist das jetzt behoben und NumericError meldet nun einen Fehler..
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. 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