 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
s-m-n

Anmeldungsdatum: 03.10.2005 Beiträge: 106 Wohnort: Pietling in Oberbayern / Deutschland
|
Verfasst am: 01.10.2006, 11:10 Titel: Variable Strings mit festem Anfang |
|
|
Hi,
wie muss ich diesen Code
Code: | dim as string x
x = lcase(x)
SELECT CASE x
case "a": print "X ist a"
end select |
ändern, dass bei sämtlichen Strings in x, die mit "a" beginnen, "X ist a" ausgegeben wird?
Danke!
Gruß s-m-n |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 01.10.2006, 11:18 Titel: |
|
|
Hi s-m-n,
wie wärs mit Code: | Select Case Mid(x,1,1)
Case "a":..
.. | alternativ Code: | Select Case Left(x,1)
Case "a":..
.. |
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 |
|
 |
s-m-n

Anmeldungsdatum: 03.10.2005 Beiträge: 106 Wohnort: Pietling in Oberbayern / Deutschland
|
Verfasst am: 01.10.2006, 14:20 Titel: |
|
|
Hmmmm, das trifft's fast, aber nicht ganz. Ich leg mal die Karten auf den Tisch:
Ich hab nämlich zum Spaß eine verrückte Version des COMMAND.COM-Interpreters programmiert, die folgendermaßen aussieht:
Code: | #include "vbcompat.bi"
10 print "Simonsoft(L) Schmarrn hochdrei"
print " (C)Copyleft Simonsoft Corp 2006-2006"
print
1 input "C:\>", x$
2 x$ = lcase(x$)
select case x$
case "exit": end
case "": goto 1
case "help": goto 3
case "dir": print "Keine Dateien oder Verzeichnisse ":goto 1
case "date": print "Samstag, 13. September 1928":goto 1
case "time": print "Es ist"; hour(now); " geteilt durch"; minute(now); ", aber Ausrechnen müssen Sie es selbst.":goto 1
case "edit": shell "notepad.exe":goto 1
case "format c:": goto 4
case "cd": print "Ungültiges Verzeichnis.":goto 1
case "del": goto 5
case "cls": print "Ihre Anfrage kann nicht ausgehführt werden (Grund: Keine Lust).":goto 1
case "win": print "Windows wurde aus Sicherheitsgründen gelöscht. Bedanken Sie sich bei Bill Gates für die vielen Fehler.":goto 1
case "rst": cls:goto 10
case else: beep:print "Befehl oder Dateiname nicht gefunden.":goto 1
end select
3 print "Mögliche Befehle:"
print "exit/dir/date/time/edit/format c:/del/cls/cd/rst/win"
print "Groß/Kleinschreibung spielt keine Rolle."
goto 1
4 print "Bitte warten..."
t = TIMER
DO
LOOP UNTIL TIMER > (t + 15)
PRINT "Festplatte C erfolgreich formatiert. Alle Daten sind futsch."
goto 1
5 input "Alles löschen (J/N)"; d$
d$ = lcase(d$)
select case d$
case "j": print "Sie haben JA gewählt. Es wurde alles gelöscht, wie Sie es wünschten."
case "n": print "Sie haben JA gewählt. Es wurde alles gelöscht, wie Sie es wünschten."
end select
goto 1 |
Und da möchte ich halt den Befehl "cd <verzeichnisname>" mit der Antwort "ungültiges Verzeichnis" einbauen, aber <verzeichnisname> kann ja vieles sein. Und deshalb sollte das Programm nur die ersten 2 Zeichen desjenigen Strings auswerten, der mit "cd" beginnt. cd alleine ist ja schon drin, aber das mit dem Verzeichnisnamen hab ich eben noch nicht hinbekommen. Und cd alleine ist auch langweilig - das benutzt ja keiner.
Und das mit der HDD LED im anderen Forum wollte ich in den Format c:-Teil einbauen, um das ganze möglichst authentisch wirken zu lassen.
Gruß s-m-n |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 01.10.2006, 14:33 Titel: |
|
|
Hi.
Um <verzeichnisname> zu isolieren, verwende einfach folgenden Code:
[code]
verzeichnisname$=Right$(eingabestring$, Len(eingabestring$)-3)
[code]
eingabestring$ ist natürlich noch zu ersetzen, aber sonst: it should work.  _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 01.10.2006, 15:38 Titel: |
|
|
Mao hat Folgendes geschrieben: | Hi.
Um <verzeichnisname> zu isolieren, verwende einfach folgenden Code:
Code: |
verzeichnisname$=Right$(eingabestring$, Len(eingabestring$)-3)
|
eingabestring$ ist natürlich noch zu ersetzen, aber sonst: it should work.  | Mao hat ein'\' vergessen
Ansonsten:witzige Idee, aber GOTO finde ich nur in einer einzigen Form akzeptabel:
GOTO hell
[Edit]
damit es nicht heißt, daß ich nur mecker: Code: | 'Ä=Ž , Ö=™ , Ü=š ; ä=„ , ö=”, ü=? , ß=á ,§=õ , ©=¸
#include "vbcompat.bi"
Do
print "Simonsoft(L) Schmarrn hochdrei"
print " (C)Copyleft Simonsoft Corp 2006-2006"
print
Do
input "C:\>", x$
select case lcase(x$)
case "exit", "q": end
case ""
case "help":
print "M”gliche Befehle:"
print "exit/dir/date/time/edit/format c:/del/cls/cd/rst/win"
print "Groá-/Kleinschreibung spielt keine Rolle."
case "dir": print "Keine Dateien oder Verzeichnisse "
case "date": print "Samstag, 13. September 1928"
case "time": print "Es ist"; hour(now); " geteilt durch"; minute(now); ", aber Ausrechnen m?ssen Sie es selbst."
case "edit": shell "notepad.exe"
case "format c:"
print "Bitte warten..."
t=TIMER
DO
LOOP UNTIL TIMER > (t + 15)
PRINT "Festplatte C erfolgreich formatiert. Alle Daten sind futsch."
case "cd": print "Ung?ltiges Verzeichnis."
case "del":
input "Alles l”schen (J/N)"; d$
select case lcase(d$)
case "j": print "Sie haben JA gew„hlt. Es wurde alles gel”scht, wie Sie es w?nschten."
case "n": print "Sie haben JA gew„hlt. Es wurde alles gel”scht, wie Sie es w?nschten."
end select
case "cls"
print "Ihre Anfrage kann nicht ausgef?hrt werden (Grund: Keine Lust)."
case "win"
print "Windows wurde aus Sicherheitsgr?nden gelöscht. Bedanken Sie sich bei Bill Gates f?r die vielen Fehler."
case "rst": cls:Exit Do
case else
beep
print "Befehl oder Dateiname nicht gefunden."
end select
Loop Until 1=0
Loop Until 1=0 | ..das Ganze mal ohne GOTO..
..weil ich ein fauler Mensch bin, habe ich als (undokumentiertes) 'Feature'(?) noch
'q' für 'Exit' eingebastelt und die Umlaute geändert..
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 |
|
 |
s-m-n

Anmeldungsdatum: 03.10.2005 Beiträge: 106 Wohnort: Pietling in Oberbayern / Deutschland
|
Verfasst am: 01.10.2006, 16:54 Titel: |
|
|
Danke an alle. Mein Problem ist gelöst.
@mao:
du hast mich genau verkehrt herum verstanden - ich wollte nicht das <verzeichnisname> isolieren, sondern das "cd".
@ytwinky
wegen den gotos haben wir uns schonmal unterhalten... Ich schau mir deinen Code mal genauer an (hab momentan eigentlich keine Zeit).
@alle:
Ich hab jetzt folgende zeile
Code: | if left(x$, 2) = "cd" then x$ = "cd" else x$ = x$ |
zwischen die Labels 1 und 2 eingebaut. Damit geht's einwandfrei.
Soll ich das Teil in die Projektvorstellungen schieben? Was meint ihr?
Gruß s-m-n |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 01.10.2006, 17:02 Titel: |
|
|
jetzt etwas OT, betrifft aber den code.
wenn du sowas machst:
Code: |
case "j": print "Sie haben JA gew„hlt. Es wurde alles gel”scht, wie Sie es w?nschten."
case "n": print "Sie haben JA gew„hlt. Es wurde alles gel”scht, wie Sie es w?nschten."
|
kannst du auch einfach schreiben:
Code: |
case "j", "n": print "blub"
|
_________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 01.10.2006, 18:25 Titel: |
|
|
Hi s-m-n,
solange wie du noch Syntax-Fragen hast, laß' es lieber noch hier..
Wer allgemeine Fragen zu FreeBASIC hat, schaut weniger häufig in den Projektvorstellungen nach..
Apropos schauen
Wenn es deine Zeit erlaubt, schau doch ruhig mal meine Modifikation an.
Der Tipp von Jojo ist zwar nicht drin, weil es ja auch sein kann, daß du doch unterschiedliche Antworten haben möchtest..
..ich find es einfach eleganter, schon weil keine Label-Nummern mehr drin sind..
Wenn du, wie ich, mit FORTRAN IV begonnen hättest, wüdest du Label-Nrn auch hassen
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 |
|
 |
|
|
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.
|
|