Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Christoph
Anmeldungsdatum: 07.04.2006 Beiträge: 108 Wohnort: NRW, Rietberg
|
Verfasst am: 26.09.2007, 21:54 Titel: Frage zu Select Case und Strings |
|
|
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 |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 26.09.2007, 21:58 Titel: |
|
|
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 |
|
 |
stuner
Anmeldungsdatum: 29.06.2006 Beiträge: 45
|
Verfasst am: 26.09.2007, 22:01 Titel: |
|
|
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 |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 26.09.2007, 22:04 Titel: |
|
|
vielen dank fürs abtippen meiner antwort 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 |
|
 |
stuner
Anmeldungsdatum: 29.06.2006 Beiträge: 45
|
Verfasst am: 26.09.2007, 22:05 Titel: |
|
|
Vielen Dank fürs schneller antworten als ich.  |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 26.09.2007, 22:19 Titel: |
|
|
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 |
|
 |
Christoph
Anmeldungsdatum: 07.04.2006 Beiträge: 108 Wohnort: NRW, Rietberg
|
Verfasst am: 26.09.2007, 22:59 Titel: |
|
|
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...
 |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 26.09.2007, 23:13 Titel: |
|
|
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 |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 26.09.2007, 23:14 Titel: |
|
|
meine variante
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 |
|
 |
Christoph
Anmeldungsdatum: 07.04.2006 Beiträge: 108 Wohnort: NRW, Rietberg
|
Verfasst am: 27.09.2007, 13:56 Titel: |
|
|
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 |
|
 |
PMedia
Anmeldungsdatum: 14.08.2006 Beiträge: 2847
|
Verfasst am: 27.09.2007, 14:07 Titel: |
|
|
ucase("a") => "A"
lcase("B") => "b" |
|
Nach oben |
|
 |
Christoph
Anmeldungsdatum: 07.04.2006 Beiträge: 108 Wohnort: NRW, Rietberg
|
Verfasst am: 27.09.2007, 15:40 Titel: |
|
|
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 |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 27.09.2007, 16:24 Titel: |
|
|
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 |
|
 |
Christoph
Anmeldungsdatum: 07.04.2006 Beiträge: 108 Wohnort: NRW, Rietberg
|
Verfasst am: 28.09.2007, 12:50 Titel: |
|
|
Jo, danke, jetzt sieht es besser aus. |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 28.09.2007, 17:18 Titel: |
|
|
Ä, Ö 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 |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 28.09.2007, 17:33 Titel: |
|
|
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 |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 28.09.2007, 17:35 Titel: |
|
|
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 |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 28.09.2007, 17:47 Titel: |
|
|
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 |
|
 |
Christoph
Anmeldungsdatum: 07.04.2006 Beiträge: 108 Wohnort: NRW, Rietberg
|
Verfasst am: 29.09.2007, 20:20 Titel: |
|
|
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 |
|
 |
|