Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Small Basic Daten Speichern

Frage Entwicklung Basic

Mitglied: bahnhof

bahnhof (Level 1) - Jetzt verbinden

31.03.2012, aktualisiert 22:34 Uhr, 5585 Aufrufe, 8 Kommentare

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
Mitglied: bastla
31.03.2012 um 20:54 Uhr
Hallo bahnhof!

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
Bitte warten ..
Mitglied: bahnhof
31.03.2012 um 21:15 Uhr
Ich habe das gerade ausprobiert und ich glaube das das nicht klappt.
Oder soll ich mal die Par Zeilen die ich bisher programmiert habe posten und du sagst mir dann wo ich das da einfügen soll?
Bitte warten ..
Mitglied: bastla
31.03.2012 um 21:23 Uhr
Hallo bahnhof!
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
Bitte warten ..
Mitglied: bahnhof
31.03.2012 um 21:50 Uhr
01.
start: 
02.
i = 1  
03.
TextWindow.WriteLine("Sicherheitsfrage: Bitte gebe eine von diesen Zahlen ein") 
04.
q: 
05.
TextWindow.WriteLine(i) 
06.
i = i + 1  
07.
If (i < 9) Then  
08.
  Goto q 
09.
EndIf 
10.
TextWindow.WriteLine(" " + i + " ") 
11.
Zahl = TextWindow.ReadNumber() 
12.
If (Zahl < 9) Then 
13.
  TextWindow.WriteLine("a") 
14.
Else 
15.
  TextWindow.WriteLine("Diese Zahl war nicht aus der Liste")  
16.
  TextWindow.Clear() 
17.
  Goto start 
18.
EndIf 
19.
TextWindow.Clear() 
20.
TextWindow.Write("Wie viel ist (3 + " + Zahl + ")*5 ?") 
21.
Antwort = TextWindow.ReadNumber() 
22.
TextWindow.Clear() 
23.
If (Antwort = (Zahl+3)*5) Then 
24.
  TextWindow.WriteLine("Diese Antwort ist richtig.Nun können Sie anfangen") 
25.
  TextWindow.WriteLine("Um weiter zu kommen müssen Sie die Eingabetaste betätigen") 
26.
  TextWindow.Read() 
27.
Else 
28.
  TextWindow.WriteLine("Versuchen Sie es bitte noch einmal")  
29.
  TextWindow.Clear() 
30.
  Goto start 
31.
EndIf 
32.
TextWindow.Clear() 
33.
TextWindow.Write("Ihr Vorname komplet kleingeschrieben und ohne ä,ö oder ü diese bitte durch ae,oe oder ue ersetzen. ") 
34.
Vorname = TextWindow.Read() 
35.
Text.ConvertToLowerCase(Vorname) 
36.
TextWindow.Write("Ihr Nachname ") 
37.
Nachname = TextWindow.Read() 
38.
TextWindow.Write("Ihr Gewünschtes Passwort ") 
39.
Passwort = TextWindow.Read() 
40.
TextWindow.Clear() 
41.
TextWindow.WriteLine("Vielen Dank " + Vorname + " " + Nachname +  " ") 
42.
TextWindow.WriteLine("Ihr Passwort wurde gesetz und ist wahrscheinlich ab anfang nächster Woche feigeschaltet.") 
43.
TextWindow.WriteLine("Ihr Anmeldename ist.") 
44.
TextWindow.WriteLine("Bitte drücken Sie die Eingabetaste damit der nächste Nutzer seine Daten eingeben kann.") 
45.
TextWindow.Read() 
46.
TextWindow.Clear() 
47.
Goto start
Hier vielleicht kannst du mir Sagen Was ich da machen muss. Ich möcht das hinter "Ihr Anmeldename" der Vorname der Person steht und ein Buchstabe des Nachnamens. Das soll da aber alles klein stehen und ohne ä,ö,ü. Und falls sich ein Zweiter anmeldet der Vorname und den ersten Buchstaben des Nachnemen Identisch hatt soll er 2 Buchstaben eingeben und immer so weiter. Und wenn es der Gleiche Name ist soll dort stehen das diese Person schon angemeldet ist.
Und es sollen halt die Daten die Dort eingegeben werden in einer Textdatei zumbeispiel auf dem Desktop gespeichert werden damit ich dann einmal in der Woche die Textdatei öffnen kann und Den Personen neue Benutzerakounts erstellen kann.

Danke für deine bemühungen
Mit freundlichen Grüßen
bahnhof

[Edit Biber] Codeformatierung. Aber die Textformatierung mach ich nicht. [/Edit]
Bitte warten ..
Mitglied: bastla
01.04.2012 um 23:28 Uhr
Hallo bahnhof!

Völlig ungetestet könnte das etwa so aussehen:
01.
Datei = "D:\Anmeldungen.txt" 
02.
Delim = ";" 
03.
 
04.
start: 
05.
TextWindow.WriteLine("Sicherheitsfrage: Bitte gebe eine von diesen Zahlen ein:") 
06.
For i = 1 To 9 
07.
    TextWindow.WriteLine(i) 
08.
EndFor 
09.
TextWindow.WriteLine(" " + i + " ") 
10.
Zahl = TextWindow.ReadNumber() 
11.
If (Zahl < 9) Then 
12.
    TextWindow.WriteLine("a") 
13.
Else 
14.
    TextWindow.WriteLine("Diese Zahl war nicht aus der Liste") 
15.
    TextWindow.Clear() 
16.
    Goto start 
17.
EndIf 
18.
 
19.
TextWindow.Clear() 
20.
TextWindow.Write("Wie viel ist (3 + " + Zahl + ")*5 ?") 
21.
Antwort = TextWindow.ReadNumber() 
22.
TextWindow.Clear() 
23.
If (Antwort = (Zahl+3)*5) Then 
24.
    TextWindow.WriteLine("Diese Antwort ist richtig.Nun können Sie anfangen") 
25.
    TextWindow.WriteLine("Um weiter zu kommen müssen Sie die Eingabetaste betätigen") 
26.
    TextWindow.Read() 
27.
Else 
28.
    TextWindow.WriteLine("Versuchen Sie es bitte noch einmal") 
29.
    TextWindow.Clear() 
30.
    Goto start 
31.
EndIf 
32.
 
33.
TextWindow.Clear() 
34.
TextWindow.Write("Ihr Vorname komplett kleingeschrieben und ohne ä,ö oder ü - diese bitte durch ae,oe oder ue ersetzen. ") 
35.
Vorname = TextWindow.Read() 
36.
TextWindow.Write("Ihr Nachname ") 
37.
Nachname = TextWindow.Read() 
38.
TextWindow.Write("Ihr Gewünschtes Passwort ") 
39.
Passwort = TextWindow.Read() 
40.
TextWindow.Clear() 
41.
 
42.
VornameKlein = Text.ConvertToLowerCase(Vorname) 
43.
NachnameKlein = Text.ConvertToLowerCase(Nachname) 
44.
NachnameKurz = Text.GetSubText(NachnameKlein, 1, 1) 
45.
 
46.
Benutzername = VornameKlein + NachnameKurz 
47.
Daten = File.ReadContents(Datei) 
48.
 
49.
If Text.IsSubText(Daten, Delim + VornameKlein + Delim + NachnameKlein) Then 
50.
    TextWindow.WriteLine("Sie sind bereits angemeldet!") 
51.
    TextWindow.Read() 
52.
    TextWindow.Clear() 
53.
    Goto start	 
54.
EndIf 
55.
 
56.
i = 2 
57.
L = Text.GetLength(NachnameKlein) 
58.
While (Text.IsSubText(Daten, VornameKlein + NachnameKurz + Delim) And (i <= L)) 
59.
    NachnameKurz = NachnameKurz + Text.GetSubText(NachnameKlein, i, 1) 
60.
    i = i + 1 
61.
EndWhile 
62.
If (i > L + 1) Then 
63.
    TextWindow.WriteLine("Benutzername bereits vorhanden!") 
64.
    TextWindow.Read() 
65.
    TextWindow.Clear() 
66.
    Goto start	 
67.
EndIf 
68.
 
69.
Anmeldename = VornameKlein + NachnameKurz 
70.
 
71.
File.AppendContents(Datei, Anmeldename + Delim + Passwort + Delim + VornameKlein + Delim + NachnameKlein) 
72.
 
73.
TextWindow.WriteLine("Vielen Dank " + Vorname + " " + Nachname + " ") 
74.
TextWindow.WriteLine("Ihr Passwort wurde gesetzt und ist wahrscheinlich ab Anfang nächster Woche freigeschaltet.") 
75.
TextWindow.WriteLine("Ihr Anmeldename ist: " + Anmeldename) 
76.
TextWindow.WriteLine("Bitte drücken Sie die Eingabetaste, damit der nächste Nutzer seine Daten eingeben kann.") 
77.
TextWindow.Read() 
78.
TextWindow.Clear() 
79.
Goto start
Grüße
bastla
Bitte warten ..
Mitglied: bahnhof
02.04.2012 um 17:04 Uhr
Vielen Dank.
Das funktioniert
Mit freundlichen Grüßen
bahnhof
Bitte warten ..
Mitglied: bastla
02.04.2012 um 19:10 Uhr
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 ("Sub") erledigen - weiterhin ungetestet etwa:
01.
Sub Message 
02.
TextWindow.WriteLine(AusgabeText)  
03.
TextWindow.Read()  
04.
TextWindow.Clear() 
05.
EndSub
[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 "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 ein
File.AppendContents(Datei, "")
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
Bitte warten ..
Mitglied: bahnhof
02.04.2012 um 19:38 Uhr
Hallo,
Bitte nehm es mir nicht übel aber ich habe mich übers Wochenende angefangen das Programm nocheinmal neuzuschreiben wa da aber nicht im Internet und das hatt jetzt mehr funktionen und ist fast vertig. Wenn mann Small Basic verstanden hatt ist das recht einfah.
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(2)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Windows Server
2012R2 All-in-One-Server kann keine Daten auf dem Desktop speichern (2)

Frage von Andre82ms zum Thema Windows Server ...

Cloud-Dienste
Amazon: Dieser Lkw transportiert Daten in die Cloud (1)

Link von Kraemer zum Thema Cloud-Dienste ...

VB for Applications
Excel VBA Sortierung von Daten (5)

Frage von easy4breezy zum Thema VB for Applications ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...