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:

Frage zu Select Case und Strings
Gehe zu Seite 1, 2  Weiter
 
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
Christoph



Anmeldungsdatum: 07.04.2006
Beiträge: 108
Wohnort: NRW, Rietberg

BeitragVerfasst am: 26.09.2007, 21:54    Titel: Frage zu Select Case und Strings Antworten mit Zitat

Hallo,

ich war dabei einen 1337 KOnverter zu schreiben, brauche aber Hilfe bei der Umsetzung mit Select Case.

Wie bekomme ich das hin, dass ich in neu alle Buschtaben reinschreibe?
Irgendwie fehlt mir die nötige Logik für das Programm:



Code:
Dim  eingabe as string, ausgabe as string, umwandl as string, absch as string,neu as string
dim i as integer

Input "Wort orginal eingeben";eingabe

For i =1 to Len(eingabe)
absch=Mid(eingabe,i,1)

select case absch
case "a"
    neu="4"
   
case "b"
    neu="8"

case "c"
    neu="c"

case "d"
    neu="d"

   Print "Wort 1337:  " & neu
end select

next i

sleep


Wenn mir da jemand weiterhelfen könnte, wäre echt super, ich probier hier schon rumn, aber iwie fehlt mir nen Denkanstoß.

Gruß
Christoph
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
MisterD



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

BeitragVerfasst am: 26.09.2007, 21:58    Titel: Antworten mit Zitat

vielleicht solltest du nach END SELECT ein ausgabe+=neu machen und nach NEXT i ein PRINT "1337-Wort: "&ausgabe oder sowas?
_________________
"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
stuner



Anmeldungsdatum: 29.06.2006
Beiträge: 45

BeitragVerfasst am: 26.09.2007, 22:01    Titel: Antworten mit Zitat

Code:
DIM  eingabe AS STRING, ausgabe AS STRING, umwandl AS STRING, absch AS STRING,neu AS String
DIM i AS INTEGER

INPUT "Wort orginal eingeben";eingabe

FOR i =1 TO LEN(eingabe)
   absch=MID(eingabe,i,1)
   
   SELECT CASE absch
      CASE "a"
          neu="4"
         
      CASE "b"
          neu="8"
      
      CASE "c"
          neu="c"
      
      CASE "d"
          neu="d"
      Case Else
         neu = absch
   END Select
   ausgabe += neu
   
NEXT i
PRINT "Wort 1337:  ";ausgabe
SLEEP


Ungetestet, sollte aber funktionieren.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
MisterD



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

BeitragVerfasst am: 26.09.2007, 22:04    Titel: Antworten mit Zitat

vielen dank fürs abtippen meiner antwort lächeln war mir zu viel arbeit alles zu kopieren *g*
_________________
"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
stuner



Anmeldungsdatum: 29.06.2006
Beiträge: 45

BeitragVerfasst am: 26.09.2007, 22:05    Titel: Antworten mit Zitat

Vielen Dank fürs schneller antworten als ich. cool
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 26.09.2007, 22:19    Titel: Antworten mit Zitat

Und noch das Feintuning:
Code:
Dim As String ausgabe, umwandl, absch, neu, eingabe
Dim As Integer i

Screen 0
Width 80, 25

Input "Wort original eingeben - ", eingabe

For i = 1 To Len(eingabe)
   absch=Mid(eingabe,i,1)
   Select Case absch
      Case "a"
         neu="4"
      Case "b"
         neu="8"
      Case Else
         neu=absch
   End Select
   ausgabe += neu
Next
Print "Wort in 1337 umgewandelt: " & ausgabe
Sleep
End


_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Christoph



Anmeldungsdatum: 07.04.2006
Beiträge: 108
Wohnort: NRW, Rietberg

BeitragVerfasst am: 26.09.2007, 22:59    Titel: Antworten mit Zitat

Ok, vielen Dank, jetzt habe ich es verstanden.
Das mit dem += war mir unbekannt.

So, jetzt muss ich mal nach den 1337- Dialekten ausschau halten...
happy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 26.09.2007, 23:13    Titel: Antworten mit Zitat

http://www.g00gl3.de/
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 26.09.2007, 23:14    Titel: Antworten mit Zitat

meine variante grinsen

Code:

dim eingabe as string

SCREEN 0
WIDTH 80, 25

INPUT "Wort original eingeben - ", eingabe

function leet (byval buffer as string) as string
   
    dim ausgabe as string=buffer
    dim stringlen as uinteger=len(buffer)
   
    FOR i as uinteger = 0 TO stringlen-1
       
            SELECT CASE as const (ausgabe[i])
                CASE asc("a")
                    ausgabe[i]=asc("4")
               
                CASE asc("b")
                    ausgabe[i]=asc("8")
            '[...]
            '[...]
            END SELECT
    NEXT i
   
    return ausgabe
end function

   
PRINT "Wort in 1337 umgewandelt: " & leet(eingabe)

SLEEP
END

_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Christoph



Anmeldungsdatum: 07.04.2006
Beiträge: 108
Wohnort: NRW, Rietberg

BeitragVerfasst am: 27.09.2007, 13:56    Titel: Antworten mit Zitat

Soweit fertig ist das Prog schon, es funktioniert.
Was ich noch nicht hinbekommen habe, ist dass ich den Eingabetext in Großbuchstaben umwandle.

Code:
Dim As String ausgabe, umwandl, absch, neu, eingabe
Dim As Integer i

Screen 0
Width 80, 25

Input "Wort original eingeben - ", eingabe
'Wir sooft gemacht wie das Wort lang ist
For i = 1 To Len(eingabe)
    absch=Mid(eingabe,i,1) 'einen Buchstaben nehmen, an der Stelle i
    Select Case absch 'Überprüfen welcher Buchstabe vorhanden ist
    Case "A"
        neu="4"
    Case "B"
        neu="8"
    Case "C"
        neu="("
    Case "D"
        neu="|)"
    Case "E"
        neu="3"
    Case "F"
        neu="|="
    Case "G"
        neu="6"
    Case "H"
        neu="|-|"
    Case "I"
        neu="!"
    Case "J"
        neu="_|"
    Case "K"
        neu="|<"
    Case "L"
        neu="1"
    Case "M"
        neu="|\/|"
    Case "N"
        neu="|\|"
    Case "O"
        neu="0"
    Case "P"
        neu="|°"
    Case "Q"
        neu="0_"
    Case "R"
        neu="2"
    Case "S"
        neu="5"
    Case "T"
        neu="7"
    Case "U"
        neu="|_|"
    Case "V"
        neu="\/"
    Case "W"
        neu="\/\/"
    Case "X"
        neu="><"
    Case "Y"
        neu="`/"
    Case "Z"
        neu="z"
    Case "Ä"
        neu="43"
    Case "Ö"
        neu="03"
    Case "Ü"
        neu="|_|3"
       
       
    Case Else
        neu=absch
       
    End Select
    ausgabe += neu 'Fügt die Buchstaben dazu, jeden Schleifendurchgang
Next
Print "Wort in 1337 umgewandelt: " & ausgabe
Sleep
End
'Anmerkung: Es gibt verschiedenen 1337 Dialekte:
'Siehe Wikipedia: http://de.wikipedia.org/wiki/Leetspeak
 


Und bei P, sowie ÄÖÜ gibt es Probleme,da weiß ich die Codes nicht für...

Und die Eingabe muss in Großbuchstaben eingeben werden, weil ich noch nicht weiß wie ich die umwandeln kann.

Gruß
Christoph
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
PMedia



Anmeldungsdatum: 14.08.2006
Beiträge: 2847

BeitragVerfasst am: 27.09.2007, 14:07    Titel: Antworten mit Zitat

ucase("a") => "A"
lcase("B") => "b"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Christoph



Anmeldungsdatum: 07.04.2006
Beiträge: 108
Wohnort: NRW, Rietberg

BeitragVerfasst am: 27.09.2007, 15:40    Titel: Antworten mit Zitat

Danke, jezt habe ich es eingebaut.
Ich habe auch das Speichern in einer Datei eingebaut, nur die Formatierung
sieht nicht so toll aus.
Zitat:
"Text in Leet: Hallo Freebasisc
|-|4110 |=233845!5("
"______________"
"______________"


Code:
Der Code dazu:
OPEN "Text_1337.txt" FOR APPEND AS #1
Print "Wort in 1337 umgewandelt: " & ausgabe

WRITE #1,"Text in Leet: " & eingabe &  NeueZeile & ausgabe
Write #1,"______________"
Write #1,"______________"
CLOSE #1


Habt ihr nen Tipp, wie ich das besser formatiert bekomme?

Gruß
Christoph
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 27.09.2007, 16:24    Titel: Antworten mit Zitat

Code:
Der Code dazu:
OPEN "Text_1337.txt" FOR APPEND AS #1
Print "Wort in 1337 umgewandelt: " & ausgabe

Print #1,"Text in Leet: " & eingabe &  NeueZeile & ausgabe
Print #1,"______________"
Print #1,"______________"
CLOSE #1

_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Christoph



Anmeldungsdatum: 07.04.2006
Beiträge: 108
Wohnort: NRW, Rietberg

BeitragVerfasst am: 28.09.2007, 12:50    Titel: Antworten mit Zitat

Jo, danke, jetzt sieht es besser aus.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 28.09.2007, 17:18    Titel: Antworten mit Zitat

Ä, Ö und Ü würde ich wie AE, OE und UE behandeln.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 28.09.2007, 17:27    Titel: Antworten mit Zitat

Ansonsten, zum Thema 'Umlaute'

Umlaute richtig darstellen:
http://www.freebasic-portal.de/index.php?s=tutorials&id=25&seite=1

Auch Umlaute in Groß und klein umwandeln:
http://www.freebasic-portal.de/index.php?s=code&id=72
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 28.09.2007, 17:33    Titel: Antworten mit Zitat

Es geht ja nicht um die Umlaute, sondern deren Darstellung in leet
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

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

Code:
    CASE "Ä"
        neu="43"
    CASE "Ö"
        neu="03"
    CASE "Ü"
        neu="|_|3"


dann muss er das aber noch anpassen, da diese in ANSI geschriebenen zeichen nicht per UCase bzw LCase angepasst werden......
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 28.09.2007, 17:47    Titel: Antworten mit Zitat

Also am einfachsten mit
Code:
case "Ä", "ä"
    neu="43"

usw.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Christoph



Anmeldungsdatum: 07.04.2006
Beiträge: 108
Wohnort: NRW, Rietberg

BeitragVerfasst am: 29.09.2007, 20:20    Titel: Antworten mit Zitat

Ich habe es mal so gemacht:

Code:
   Case "Ä"
        neu="43"
    Case "Ö"
        neu="03"
    Case "Ü"
        neu="|_|3"


Aber die Umlaute werden ignoriert!

Hier mal der komplette Code, incl. Umwandlung von Lcase in Ucase

Code:
Dim As String ausgabe, umwandl, absch, neu, eingabe, grosb
Dim As Integer i
CONST NeueZeile = !"\r\n"

Screen 0
Width 80, 25
?"1337 - Leet Konverter, Text->Leet "
Input "Wort original eingeben - ", eingabe
'Wir sooft gemacht wie das Wort lang ist
For i = 1 To Len(eingabe)
    grosb=ucase(eingabe) 'in Großbuchstaben umwandeln
    absch=Mid(grosb,i,1) 'einen Buchstaben nehmen, an der Stelle i
    Select Case absch 'Überprüfen welcher Buchstabe vorhanden ist
    Case "A"
        neu="4"
    Case "B"
        neu="8"
    Case "C"
        neu="("
    Case "D"
        neu="|)"
    Case "E"
        neu="3"
    Case "F"
        neu="|="
    Case "G"
        neu="6"
    Case "H"
        neu="|-|"
    Case "I"
        neu="!"
    Case "J"
        neu="_|"
    Case "K"
        neu="|<"
    Case "L"
        neu="1"
    Case "M"
        neu="|\/|"
    Case "N"
        neu="|\|"
    Case "O"
        neu="0"
    Case "P"
        neu="|°"
    Case "Q"
        neu="0_"
    Case "R"
        neu="2"
    Case "S"
        neu="5"
    Case "T"
        neu="7"
    Case "U"
        neu="|_|"
    Case "V"
        neu="\/"
    Case "W"
        neu="\/\/"
    Case "X"
        neu="><"
    Case "Y"
        neu="`/"
    Case "Z"
        neu="z"
    Case "Ä"
        neu="43"
    Case "Ö"
        neu="03"
    Case "Ü"
        neu="|_|3"
       
       
    Case Else
        neu=absch
       
    End Select
    ausgabe += neu 'Fügt die Buchstaben dazu, jeden Schleifendurchgang
Next
OPEN "Text_1337.txt" FOR APPEND AS #1
Print "Wort in 1337 umgewandelt: " & ausgabe

Print #1,"Text in Leet: " & eingabe &  NeueZeile & ausgabe
print #1,"______________"
print #1,"______________"
CLOSE #1

Sleep
End
'Anmerkung: Es gibt verschiedenen 1337 Dialekte:
'Siehe Wikipedia: http://de.wikipedia.org/wiki/Leetspeak
Nach oben
Benutzer-Profile anzeigen Private Nachricht 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
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
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