Small Basic Daten Speichern
Hallo,
Ich versuch mich gerade in Small Basic einzuarbeiten. Dort möchte ich Ein Kleines Programm schreiben in dem Die Nutzer etwas eintragen müssen. Das habe ich auch schon geschaft. Ich möchte aber gerne dass, das Programm die Daten in eine Textdatei speichern und danach das Programm neu startet und der Nächste soll etwas eintragen so möchte ich sehr schnell bestimmte Daten sammeln.
Nun finde ich nicht den Befehl der die Daten in einer Datei speichert. Und auch nicht dass, das Programm danach neu startet.
Da das Programm jedem Nutzer einen Nutzernamn erstellen soll wer as schön wenn es einen Befehl gäber (muss aber nicht sein) der automatisch den ganzen Vornamen kleinschreibt und ä,ö oder ü in ae,oe oder ue umwandelt. Und dann den Ersten Buchstaben das Nachnamen hinten einfügt.
Das aller beste wer jetzt noch wenn es einen Befehl gäbe der jetzt auch nch in den schon entstandenen Daten schaut ob jemand dort schon diesen Benutzenamen hatt und falls dieses so ist soll der Zweite Buchstabe des Nachnamens dazukommen und immer so weiter. Vielleicht kann das Programm ja auch noch sagen ob der Vor und Nachname schon so in der Datei existiert.
Würde mich über eine Antwort freuen
Mit freunlichen Grüßen
bahnhof
Ich versuch mich gerade in Small Basic einzuarbeiten. Dort möchte ich Ein Kleines Programm schreiben in dem Die Nutzer etwas eintragen müssen. Das habe ich auch schon geschaft. Ich möchte aber gerne dass, das Programm die Daten in eine Textdatei speichern und danach das Programm neu startet und der Nächste soll etwas eintragen so möchte ich sehr schnell bestimmte Daten sammeln.
Nun finde ich nicht den Befehl der die Daten in einer Datei speichert. Und auch nicht dass, das Programm danach neu startet.
Da das Programm jedem Nutzer einen Nutzernamn erstellen soll wer as schön wenn es einen Befehl gäber (muss aber nicht sein) der automatisch den ganzen Vornamen kleinschreibt und ä,ö oder ü in ae,oe oder ue umwandelt. Und dann den Ersten Buchstaben das Nachnamen hinten einfügt.
Das aller beste wer jetzt noch wenn es einen Befehl gäbe der jetzt auch nch in den schon entstandenen Daten schaut ob jemand dort schon diesen Benutzenamen hatt und falls dieses so ist soll der Zweite Buchstabe des Nachnamens dazukommen und immer so weiter. Vielleicht kann das Programm ja auch noch sagen ob der Vor und Nachname schon so in der Datei existiert.
Würde mich über eine Antwort freuen
Mit freunlichen Grüßen
bahnhof
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 182900
Url: https://administrator.de/contentid/182900
Ausgedruckt am: 22.11.2024 um 13:11 Uhr
8 Kommentare
Neuester Kommentar
Hallo bahnhof!
Ich kenne "Small Basic" zwar leider nicht, aber was so auf die Schnelle der Doku zu entnehmen war:
Für das Ersetzen eines Textes (Umaute) könnte die Extended Text Library helfen ...
Grüße
bastla
Ich kenne "Small Basic" zwar leider nicht, aber was so auf die Schnelle der Doku zu entnehmen war:
- An bestehende Datei anfügen:
File.AppendContents(filePath, contents)
- Gesamten Dateiinhalt einlesen:
File.ReadContents(filePath)
- Prüfen, ob ein Text einen anderen Text enthält:
Text.IsSubText(text, subText)
- Text in Kleinbuchstaben umwandeln:
Text.ConvertToLowerCase(text)
- Einzelne Zeichen eines Textes entnehmen:
Text.GetSubText(text, start, length)
Für das Ersetzen eines Textes (Umaute) könnte die Extended Text Library helfen ...
Grüße
bastla
Hallo bahnhof!
... also solltest Du schon wissen, was klappt und was nicht (und daher vielleicht sogar eine Fehlermeldung, die weiterhelfen könnte, bringt).
... da ich allerdings, wie erwähnt, "Small Basic" nicht kenne, kann ich bestenfalls Tipps geben ...
Grüße
bastla
ich glaube das das nicht klappt.
Programmierung ist sicherlich keine Glaubensfrage ... ... also solltest Du schon wissen, was klappt und was nicht (und daher vielleicht sogar eine Fehlermeldung, die weiterhelfen könnte, bringt).
soll ich mal die Par Zeilen die ich bisher programmiert habe posten
Kann ja nicht schaden ...... da ich allerdings, wie erwähnt, "Small Basic" nicht kenne, kann ich bestenfalls Tipps geben ...
Grüße
bastla
Hallo bahnhof!
Völlig ungetestet könnte das etwa so aussehen:
Grüße
bastla
Völlig ungetestet könnte das etwa so aussehen:
Datei = "D:\Anmeldungen.txt"
Delim = ";"
start:
TextWindow.WriteLine("Sicherheitsfrage: Bitte gebe eine von diesen Zahlen ein:")
For i = 1 To 9
TextWindow.WriteLine(i)
EndFor
TextWindow.WriteLine(" " + i + " ")
Zahl = TextWindow.ReadNumber()
If (Zahl < 9) Then
TextWindow.WriteLine("a")
Else
TextWindow.WriteLine("Diese Zahl war nicht aus der Liste")
TextWindow.Clear()
Goto start
EndIf
TextWindow.Clear()
TextWindow.Write("Wie viel ist (3 + " + Zahl + ")*5 ?")
Antwort = TextWindow.ReadNumber()
TextWindow.Clear()
If (Antwort = (Zahl+3)*5) Then
TextWindow.WriteLine("Diese Antwort ist richtig.Nun können Sie anfangen")
TextWindow.WriteLine("Um weiter zu kommen müssen Sie die Eingabetaste betätigen")
TextWindow.Read()
Else
TextWindow.WriteLine("Versuchen Sie es bitte noch einmal")
TextWindow.Clear()
Goto start
EndIf
TextWindow.Clear()
TextWindow.Write("Ihr Vorname komplett kleingeschrieben und ohne ä,ö oder ü - diese bitte durch ae,oe oder ue ersetzen. ")
Vorname = TextWindow.Read()
TextWindow.Write("Ihr Nachname ")
Nachname = TextWindow.Read()
TextWindow.Write("Ihr Gewünschtes Passwort ")
Passwort = TextWindow.Read()
TextWindow.Clear()
VornameKlein = Text.ConvertToLowerCase(Vorname)
NachnameKlein = Text.ConvertToLowerCase(Nachname)
NachnameKurz = Text.GetSubText(NachnameKlein, 1, 1)
Benutzername = VornameKlein + NachnameKurz
Daten = File.ReadContents(Datei)
If Text.IsSubText(Daten, Delim + VornameKlein + Delim + NachnameKlein) Then
TextWindow.WriteLine("Sie sind bereits angemeldet!")
TextWindow.Read()
TextWindow.Clear()
Goto start
EndIf
i = 2
L = Text.GetLength(NachnameKlein)
While (Text.IsSubText(Daten, VornameKlein + NachnameKurz + Delim) And (i <= L))
NachnameKurz = NachnameKurz + Text.GetSubText(NachnameKlein, i, 1)
i = i + 1
EndWhile
If (i > L + 1) Then
TextWindow.WriteLine("Benutzername bereits vorhanden!")
TextWindow.Read()
TextWindow.Clear()
Goto start
EndIf
Anmeldename = VornameKlein + NachnameKurz
File.AppendContents(Datei, Anmeldename + Delim + Passwort + Delim + VornameKlein + Delim + NachnameKlein)
TextWindow.WriteLine("Vielen Dank " + Vorname + " " + Nachname + " ")
TextWindow.WriteLine("Ihr Passwort wurde gesetzt und ist wahrscheinlich ab Anfang nächster Woche freigeschaltet.")
TextWindow.WriteLine("Ihr Anmeldename ist: " + Anmeldename)
TextWindow.WriteLine("Bitte drücken Sie die Eingabetaste, damit der nächste Nutzer seine Daten eingeben kann.")
TextWindow.Read()
TextWindow.Clear()
Goto start
bastla
Hallo bahnhof!
Das ist schön.
Optimierungspotenzial habe ich Dir aber natürlich noch gelassen - 2 Beispiele dafür:
Das öfters benötigte Ausgeben einer Meldung zB ließe sich bessesr per Unteprogramm ("
[Edit] Da offensichtlich keine Parameter an ein Unterprogramm übergeben werden können, müsste vor dem Aufruf bereits der Ausgabetext in die Variable "AusgabeText" geschrieben werden - die Ersparnis an Code durch die Verwendung des Unterprogramms hält sich dann natürlich in Grenzen, es ist aber leichter möglich, durch eine einzige Änderung alle Meldungen anders darstellen zu lassen (zB durch temporäre Änderung der Schriftfarbe, ...), sodass ich trotzdem den Einsatz eines "
Die "Anmeldungs"-Datei müsste eigentlich vor dem allerersten Durchlauf bereits existieren - auf die Schnelle habe ich keine passende Abfragemöglichkeit auf "
für Sicherheit sorgen könnte (die Datei soll ja ohnehin erstellt werden) ...
Außerdem wäre noch zu überlegen, die beiden Zahlenwerte in Zeile 20 vorweg als Variablen mit Zufallszahlen zu befüllen - damit wird das Ganze weniger vorhersehbar ...
Grüße
bastla
Das ist schön.
Optimierungspotenzial habe ich Dir aber natürlich noch gelassen - 2 Beispiele dafür:
Das öfters benötigte Ausgeben einer Meldung zB ließe sich bessesr per Unteprogramm ("
Sub
") erledigen - weiterhin ungetestet etwa:Sub Message
TextWindow.WriteLine(AusgabeText)
TextWindow.Read()
TextWindow.Clear()
EndSub
Sub
" empfehlen würde. [/Edit]Die "Anmeldungs"-Datei müsste eigentlich vor dem allerersten Durchlauf bereits existieren - auf die Schnelle habe ich keine passende Abfragemöglichkeit auf "
FileExists()
" gefunden, sodass als Workaround vielleicht einFile.AppendContents(Datei, "")
Außerdem wäre noch zu überlegen, die beiden Zahlenwerte in Zeile 20 vorweg als Variablen mit Zufallszahlen zu befüllen - damit wird das Ganze weniger vorhersehbar ...
Grüße
bastla