 |
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 |
qbay
Anmeldungsdatum: 08.06.2008 Beiträge: 84
|
Verfasst am: 03.06.2009, 19:34 Titel: Ein kleines Spiel |
|
|
Hey Leute
ich wollte ein kleines Spiel schreiben
indm immer in einem Kreis die Farbe erscheint
und man sie schreiben muss
usw.
also aber irgentwas stimmt nich am besten ihr macht euch selbst ein Bild
Code: |
DIM AS SINGLE farbe(1 TO 15)
DIM AS STRING eingabe, taste
DIM AS INTEGER zufallsfarbe
farbe(1) = "Dunkelblau"
farbe(2) = "Dunkelgrün"
farbe(3) = "Türkis"
farbe(4) = "Dunkelrot"
farbe(5) = "Dunkelviolett"
farbe(6) = "Dunkelbraun"
farbe(7) = "Hellgrau"
farbe(8) = "Grau"
farbe(9) = "Hellblau"
farbe(10) = "Hellgrün"
farbe(11) = "Hell-Türkis"
farbe(12) = "Hellrot"
farbe(13) = "Rosa"
farbe(14) = "Gelb"
farbe(15) = "Weiß"
SCREEN 18
Do
zufallsfarbe = INT(15 * RND)
CIRCLE (320, 240), 200, zufallsfarbe, , , , F
INPUT "Welche Farbe?", eingabe
DO
taste=INKEY$
LOOP UNTIL taste<>""
IF eingabe = LCASE(farbe(1 TO 15)) TO UCASE(farbe(1 TO 15)) THEN PRINT "Richtig!": EXIT DO ELSE PRINT "Falsch!"
LOOP
END
|
ich würde es schon bevorzugen wen ihr mein programm verbessert
aber ich würde natürlich auch gern eure ideen dazu sehen wollen
gruss  |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 03.06.2009, 19:56 Titel: |
|
|
ich weiß nicht, wo du "IF LCASE TO UCASE" kennengelernt hast, aber das ist klasse
Anfängerfehler 1: INT rundet ab. zufallsfarbe nimmt Werte zwischen 0 und 14 an, nicht 1 bis 15. wie du das beheben kannst, verrate ich aber nicht, denn sowas müsstest du wirklich selbst wissen.
Fehler 2: Offensichtlich das IF-Statement.
Am einfachsten ist es, die farben im array alle in kleinschreibung zu speichern und dann die varible "eingabe" nach der Eingabe in LCASE umzuwandeln. Danach noch...
Code: |
for i as integer = 1 to 15
if farbe(i) = eingabe then Print "Richtig!": Exit Do
next
print "Falsch!"
|
Beachte aber, dass LCASE/UCASE keine Umlaute konvertieren können. Hier ist ein wenig Kreativität gefragt. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4701 Wohnort: ~/
|
Verfasst am: 03.06.2009, 20:11 Titel: |
|
|
Nebenbei würde ich es in der ersten Zeile mit
Code: | DIM AS STRING farbe(1 TO 15) |
probieren. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
qbay
Anmeldungsdatum: 08.06.2008 Beiträge: 84
|
Verfasst am: 07.06.2009, 19:54 Titel: |
|
|
ok leute
die erste wand ist überwunden
hier mein kleines spiel
Code: |
DIM AS STRING farbe(1 TO 15)
DIM AS STRING eingabe, taste
DIM AS INTEGER zufallsfarbe, I
farbe(1) = "dunkelblau"
farbe(2) = "dunkelgrün"
farbe(3) = "türkis"
farbe(4) = "dunkelrot"
farbe(5) = "dunkelviolett"
farbe(6) = "dunkelbraun"
farbe(7) = "hellgrau"
farbe(8) = "grau"
farbe(9) = "hellblau"
farbe(10) = "hellgrün"
farbe(11) = "hell-Türkis"
farbe(12) = "hellrot"
farbe(13) = "rosa"
farbe(14) = "gelb"
farbe(15) = "weiß"
SCREEN 18
RANDOMIZE TIMER
Do
zufallsfarbe = INT(15 * RND)+1
CIRCLE (320, 240), 200, zufallsfarbe, , , , F
INPUT "Welche Farbe?", eingabe
FOR I AS INTEGER = 1 TO 15
IF farbe(I) = eingabe THEN PRINT "Richtig!": EXIT DO
NEXT
PRINT "Falsch!"
LOOP
SLEEP
END
|
für denn anfang gefällt es mir schon aber ich wil dieses thema noch nicht beenden denn aus dem spiel kann man noch mehr machen
das versuche ich noch hinzukriegen^^
wenn ich es geschafft habe dann schreibe ich wieder
in der zwieschenzeit würde ich euch gerne fragen ob ihr mir arrays mit eigenen worten beschreiben könnt denn da harpert es noch bei mir gewaltig  |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4701 Wohnort: ~/
|
Verfasst am: 07.06.2009, 20:27 Titel: |
|
|
Ich würde es mal so sagen: Ein Array ist so was wie eine (nummerierte) Gruppe von Variablen. In deinem Programm hast du 15 Farbnamen gespeichert. Jetzt hättest du natürlich auch 15 Variablen verwenden können:
Code: | farbeA = "dunkelblau"
farbeB = "dunkelgrün"
farbeC = "türkis" |
usw.
Damit wird allerdings die Überprüfung wesentlich umständlicher, weil du jede Variable einzeln prüfen musst:
Code: | IF zufallsfarbe = 1 AND farbeA = eingabe THEN PRINT "Richtig!": EXIT DO
IF zufallsfarbe = 2 AND farbeB = eingabe THEN PRINT "Richtig!": EXIT DO
IF zufallsfarbe = 3 AND farbeC = eingabe THEN PRINT "Richtig!": EXIT DO |
usw.
Mit den Arrays wird es ein gutes Stück einfacher, weil du problemlos auf "die 5. Farbe" oder "die 8. Farbe" oder eben in der FOR-Schleife auf "die i-te Farbe" zugreifen kannst. Die Schleife macht eigentlich genau das, was bei meinem obigen Code passiert, nur dass du wesentlich weniger Zeilen brauchst (außerdem wäre das Programm prinzipiell erweiterbar, indem nur das Array erweitert wird - ist bzgl. der Farben natürlich schwierig).
edit: das musst du noch ändern - dein Programm liefert immer "Richtig!", sofern eine existierende Farbe eingegeben wird (also z. B. "gelb" bei einem roten Kreis). Einen Lösungshinweis findest du in meinem zweiten Codeschnipsel. Du kannst das aber auch sehr elegant in einer Zeile und ohne Schleife lösen. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
qbay
Anmeldungsdatum: 08.06.2008 Beiträge: 84
|
Verfasst am: 07.06.2009, 21:11 Titel: |
|
|
hab eine lösung gefunden
wenn man in der FOR-NEXT-Schleif einfach das I durch die Variabel "zufalssfarbe" ersätzt dann wird immer die richtige Farbe ausgewählt weil man ja dann denn Farbcode direkt angiebt
also nicht so
Code: |
FOR I AS INTEGER = 1 TO 15
IF farbe(I) = eingabe THEN PRINT "Richtig!": EXIT DO
NEXT
PRINT "Falsch!"
|
sondern so...
Code: |
IF farbe(zufalssfarbe) = eingabe THEN PRINT "Richtig!": EXIT DO
PRINT "Falsch!"
|
die variabel I kann man dann ganz weglassen
Danke nochmal für eure hilfe
Ach und nur so aus neugier nemored wie würde das andere beispiel aussehen? |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4701 Wohnort: ~/
|
Verfasst am: 07.06.2009, 21:21 Titel: |
|
|
Welches andere Beispiel meinst du? Wenn du dich auf
Zitat: | Du kannst das aber auch sehr elegant in einer Zeile und ohne Schleife lösen. |
beziehst, das hast du, so wie ich das sehe, bereits gemacht.
(Das PRINT "Falsch!" habe ich bei den Zeilen nicht mitgerechnet) _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
qbay
Anmeldungsdatum: 08.06.2008 Beiträge: 84
|
Verfasst am: 07.06.2009, 21:25 Titel: |
|
|
DANKE
ich meine
Zitat: |
edit: das musst du noch ändern - dein Programm liefert immer "Richtig!", sofern eine existierende Farbe eingegeben wird (also z. B. "gelb" bei einem roten Kreis). Einen Lösungshinweis findest du in meinem zweiten Codeschnipsel. Du kannst das aber auch sehr elegant in einer Zeile und ohne Schleife lösen.
|
also die Lösung die nach deinem 2. Beispiel
wie wüde die aussehen? |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4701 Wohnort: ~/
|
Verfasst am: 07.06.2009, 23:12 Titel: |
|
|
Code: | FOR I AS INTEGER = 1 TO 15
IF I = zufallsfarbe AND farbe(I) = eingabe THEN PRINT "Richtig!": EXIT DO
NEXT |
Ist allerdings ziemlich unsinnig. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 08.06.2009, 08:19 Titel: Re: Ein kleines Spiel |
|
|
qbay hat Folgendes geschrieben: | Code: | IF eingabe = LCASE(farbe(1 TO 15)) TO UCASE(farbe(1 TO 15)) THEN PRINT "Richtig!": EXIT DO ELSE PRINT "Falsch!" |
|
Offensichtlich willst Du case-insensitiv vergleichen, so dass also "dunkelgrün", "DUNKELGRÜN", "Dunkelgrün", "duNKelGrÜn" usw. alle gleichwertig akzeptiert werden: Dazu musst Du schon
Code: | If Ucase(eingabe) = Ucase(farbe(zufallsfarbe)) Then ... |
oder
Code: | If Lcase(eingabe) = Lcase(farbe(zufallsfarbe)) Then ... |
verwenden, also Eingabe selber zuerst umwandeln und erst dann vergleichen. Und wie zum Glück von Dir selber bemerkt gibt es überhaupt keinen Grund für diese innere FOR-Schleife.
Somit schaut ein korrigierter Code grob wie folgt aus (nur Ausschnitt):
Code: | Do
zufallsfarbe = INT(15 * RND)+1
CIRCLE (320, 240), 200, zufallsfarbe, , , , F
inSchl = -1 ' Sollte TRUE sein
Do While inSchl
INPUT "Welche Farbe (Leereingabe=Spielende)?", eingabe
If eingabe <> "" Then
IF Ucase(eingabe) = UCase(farbe(zufallsfarbe)) Then
PRINT "Richtig!"
inSchl = 0 ' FALSE
Else
PRINT "Falsch!"
End If
Else
inSchl = 0
End If
Loop
LOOP Until eingabe = "" |
Gemachte Verbesserungen: Jederzeit dieses Ratespiel beenden zu können + zum nächsten Farbraterätsel geht es erst bei richtiger Antwort. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
qbay
Anmeldungsdatum: 08.06.2008 Beiträge: 84
|
Verfasst am: 08.06.2009, 23:17 Titel: |
|
|
Ich wüsste nicht wie man das noch verbessern soll
Aber ich werde es natürlich weiter versuchen
über Aufgaben (kleine) wäre ich sehr dankbar
Code: |
DIM AS STRING farbe(1 TO 15)
DIM AS STRING eingabe, taste
DIM AS INTEGER zufallsfarbe, inSchl
farbe(1) = "dunkelblau"
farbe(2) = "dunkelgrün"
farbe(3) = "türkis"
farbe(4) = "dunkelrot"
farbe(5) = "dunkelviolett"
farbe(6) = "dunkelbraun"
farbe(7) = "hellgrau"
farbe(8) = "grau"
farbe(9) = "hellblau"
farbe(10) = "hellgrün"
farbe(11) = "hell-Türkis"
farbe(12) = "hellrot"
farbe(13) = "rosa"
farbe(14) = "gelb"
farbe(15) = "weiß"
SCREEN 18
RANDOMIZE TIMER
DO
zufallsfarbe = INT(15 * RND)+1
CIRCLE (320, 240), 200, zufallsfarbe, , , , F
inSchl = -1 ' Sollte TRUE sein
DO WHILE inSchl
INPUT "Welche Farbe (Leereingabe=Spielende)?", eingabe
IF eingabe <> "" THEN
IF UCASE(eingabe) = UCASE(farbe(zufallsfarbe)) THEN
PRINT "Richtig!"
inSchl = 0 ' FALSE
ELSE
PRINT "Falsch!"
END IF
ELSE
inSchl = 0
END IF
LOOP
LOOP UNTIL eingabe = ""
SLEEP
END
|
hey dreal was soll "inSchl" eigentlich bedeuten?
In Schleife oder? |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 09.06.2009, 00:04 Titel: |
|
|
WHILE ist eine Schleife... inSchl[...] könnte dann was bedeuten? _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 09.06.2009, 19:45 Titel: |
|
|
qbay hat Folgendes geschrieben: | hey dreal was soll "inSchl" eigentlich bedeuten? |
Ist eine Variable. Semantisch müsste sie vom Typ Boolean sein. Allerdings scheint übrigens FreeBasic wie schon sein Vorläufer QB diesen Datentyp nicht zu kennen. In Pascal und Modula-2 würde ich für diesen Fall etwas in dieser Art schreiben
Code: | VAR inSchl : BOOLEAN;
...
inSchl := TRUE;
While inSchl
..
WriteLn("Richtig");
inSchl := FALSE;
..
Wend |
Übrigens VBScript unterstützt Boolean dagegen vollständig. In FB kommt derselbe Kniff mit Zahlen wie in QB zum Zug, also Werte <>0 (bevorzugt -1) stellen TRUE dar, 0 selber FALSE.
Semantisch kennen jedoch QB und FB zahlreiche Befehle und Funktionen, die eigentlich Boolean-Werte zurückgeben, z.B. EOF() bei Dateien. Sämtliche Vergleichsoperatoren liefern im Prinzip immer Boolean zurück, weshalb in Pascal
Code: | VAR bTest : BOOLEAN;
bTest := a > 4; |
völlig korrekt und sinnvoll ist (Resultat des Vergleichs wird der Boolean-Variable zugewiesen). In QB und FB kannst Du dies genauso handhaben, ausser dass der Rückgabewert eine Integerzahl mit -1 oder 0 ist, d.h. dort bewirkt
Code: | Dim bTest As Integer
bTest = a > 4 |
dasselbe.
Wäre übrigens aus meiner Sicht für FB sogar eine sinnvolle Spracherweiterung, einen echten Boolean (darf _nicht_ mit Zahlen kompatibel sein, d.h. soll "Type Mismatch" ergeben) bereitzustellen, so dass auf das 0/-1-Rückwärtskompatibilitätsverhalten nur bei "-lang QB" zurückgegangen werden soll. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
qbay
Anmeldungsdatum: 08.06.2008 Beiträge: 84
|
Verfasst am: 23.07.2009, 14:27 Titel: |
|
|
hey leute
also ich hab mir richtig den kopf zerbrochen
und mir fällt keine lösung ein
Code: |
DIM AS STRING farbe(1 TO 15)
DIM AS STRING eingabe
DIM AS INTEGER zufallsfarbe, inSchleife
farbe(1) = "dunkelblau"
farbe(2) = "dunkelgrün"
farbe(3) = "türkis"
farbe(4) = "dunkelrot"
farbe(5) = "dunkelviolett"
farbe(6) = "dunkelbraun"
farbe(7) = "hellgrau"
farbe(8) = "grau"
farbe(9) = "hellblau"
farbe(10) = "hellgrün"
farbe(11) = "helltürkis"
farbe(12) = "hellrot"
farbe(13) = "rosa"
farbe(14) = "gelb"
farbe(15) = "weiß"
SCREEN 18
CLS
RANDOMIZE TIMER
DO
zufallsfarbe = INT(15 * RND)+1
CIRCLE (320, 240), 200, zufallsfarbe, , , , F
inSchleife = -1
DO WHILE inSchleife = -1
INPUT "Welche Farbe?", eingabe
IF UCASE(farbe(zufallsfarbe)) = UCASE(eingabe) THEN
PRINT "Richtig!"
inSchleife = 0
ELSE
PRINT "Falsch!"
END IF
LOOP
LOOP UNTIL eingabe = ""
SLEEP
END
|
dieser code funktioniert 2 oder 3 mal richtig
und dann garnich mehr
bei mir zeigt er dann nur noch "Falsch!" an
is das bei euch auch so
weis einer wieso??
ich weis is schon alt das thema aber
ich habs halt sehr oft probiert  |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 23.07.2009, 15:32 Titel: |
|
|
Ein kleiner, jedoch nicht unwichtiger "Glatteis"-Fall gibt es noch bei UCASE() und LCASE(): Diese Funktionen waren zumindest früher in QB und deren damals verwandten Dialekten nicht international kompatibel, d.h. sie wandeln nur den Zeichenbereich A-Z (CHR$(65)-CHR$(90)) korrekt um! => Es könnte daher nun möglich sein, dass Du beispielsweise <CAPS LOCK> drin hast, der "Würfel" hat z.B. "hellgrün" gewürfelt, Du gibst logischerweise "HELLGRÜN" ein, aber UCASE$() macht aus "hellgrün" halt eben nur "HELLGRüN", womit der Vergleich natürlich fehlschlägt, denn "HELLGRüN" und "HELLGRÜN" sind sind für FB zwei unterschiedliche Strings! _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
Muttonhead

Anmeldungsdatum: 26.08.2008 Beiträge: 565 Wohnort: Jüterbog
|
Verfasst am: 23.07.2009, 22:31 Titel: |
|
|
Das ist ein Teil des Problems....
Ich glaube die Umlaute in Stringvariablen(also im SourceCode definiert) haben nicht den gleichen ASCII Code wie
die Umlaute die Stringvariablen per INPUT oder INKEY zugewiesen werden
Hatte mir da mal kleine KonvertierungsKrücken(für meine GUI) gebaut:
Code: |
'UmlautKonvertierung***********************************************************
declare function UImport(s as string) as string
declare function UExport(s as string) as string
'Umlaute die in importierten Texten stehen, werden
'oft von FB nicht richtig dargestellt.
'Ebenfalls gibt es Probleme bei
'Umlautzuweisungen direkt im Code:
'zB. a="äöüÄÖÜß"
'Da hilft UImport()
'Umlaute die über Inkey oder Input
'in Strings gelangt sind werden in FB richtig
'dargestellt.
'Wenn diese Strings jedoch in eine Text-Datei geschrieben
'werden, sind diese Umlaute für andere Programme (zB.Editoren)
'nicht lesbar
'Da hilft UExport()
'In beiden Fällen bleibt der Original-String erhalten
function UImport(s as string) as string
function=""
dim as string tmps
dim as integer i,tmpasc
if len(s) then
tmps=s
for i=1 to len(s)
tmpasc=asc(mid(tmps,i,1))
if tmpasc=228 then tmpasc=132 'ae
if tmpasc=246 then tmpasc=148 'oe
if tmpasc=252 then tmpasc=129 'ue
if tmpasc=196 then tmpasc=142 'AE
if tmpasc=214 then tmpasc=153 'OE
if tmpasc=220 then tmpasc=154 'UE
if tmpasc=223 then tmpasc=225 '"Eszett" zu "Beta"???
mid(tmps,i,1)=chr$(tmpasc)
next i
function=tmps
end if
end function
function UExport(s as string) as string
function=""
dim as string tmps
dim as integer i,tmpasc
if len(s) then
tmps=s
for i=1 to len(tmps)
tmpasc=asc(mid(tmps,i,1))
if tmpasc=132 then tmpasc=228 'ae
if tmpasc=148 then tmpasc=246 'oe
if tmpasc=129 then tmpasc=252 'ue
if tmpasc=142 then tmpasc=196 'AE
if tmpasc=153 then tmpasc=214 'OE
if tmpasc=154 then tmpasc=220 'UE
if tmpasc=225 then tmpasc=223 '"Beta" zu "Eszett"???
mid(tmps,i,1)=chr$(tmpasc)
next i
function=tmps
end if
end function
|
Damit und mit Dreaels Hinweis (UCASE zu LCASE) hab ich dann mal deinen Code etwas verändert:
Code: |
DIM AS STRING farbe(1 TO 15)
DIM AS STRING eingabe
DIM AS INTEGER zufallsfarbe, inSchleife
declare function UImport(s as string) as string
'nur strings mit Umlauten werden konvertiert
farbe(1) = "dunkelblau"
farbe(2) = UImport("dunkelgrün")
farbe(3) = UImport("türkis")
farbe(4) = "dunkelrot"
farbe(5) = "dunkelviolett"
farbe(6) = "dunkelbraun"
farbe(7) = "hellgrau"
farbe(8) = "grau"
farbe(9) = "hellblau"
farbe(10) = UImport("hellgrün")
farbe(11) = UImport("helltürkis")
farbe(12) = "hellrot"
farbe(13) = "rosa"
farbe(14) = "gelb"
farbe(15) = UImport("weiß")
SCREEN 18
CLS
RANDOMIZE TIMER
DO
zufallsfarbe = INT(15 * RND)+1
CIRCLE (320, 240), 200, zufallsfarbe, , , , F
inSchleife = -1
DO WHILE inSchleife = -1
print zufallsfarbe'<----Diese Zeile bitte löschen, nur zu Testzwecken eingefügt!!!!!!!!!!!!!
INPUT "Welche Farbe?", eingabe
IF LCASE(farbe(zufallsfarbe)) = LCASE(eingabe) THEN
PRINT "Richtig!"
inSchleife = 0
ELSE
PRINT "Falsch!"
END IF
LOOP
LOOP UNTIL eingabe = ""
SLEEP
END
'Umlaute die in importierten Texten stehen, werden
'oft von FB nicht richtig dargestellt.
'Ebenfalls gibt es Probleme bei
'Umlautzuweisungen direkt im Code:
'zB. a="äöüÄÖÜß"
'Da hilft UImport()
function UImport(s as string) as string
function=""
dim as string tmps
dim as integer i,tmpasc
if len(s) then
tmps=s
for i=1 to len(s)
tmpasc=asc(mid(tmps,i,1))
if tmpasc=228 then tmpasc=132 'ae
if tmpasc=246 then tmpasc=148 'oe
if tmpasc=252 then tmpasc=129 'ue
if tmpasc=196 then tmpasc=142 'AE
if tmpasc=214 then tmpasc=153 'OE
if tmpasc=220 then tmpasc=154 'UE
if tmpasc=223 then tmpasc=225 '"Eszett" zu "Beta"???
mid(tmps,i,1)=chr$(tmpasc)
next i
function=tmps
end if
end function
|
es gibt hier bestimmt einige Beiträge die das Problem mit den Umlauten nochmal näher beleuchten und im Portal auch andere Lösungsvorschläge...
Gruss Mutton |
|
Nach oben |
|
 |
qbay
Anmeldungsdatum: 08.06.2008 Beiträge: 84
|
Verfasst am: 23.07.2009, 23:29 Titel: |
|
|
ok also im grunde liegt das problem jetzt nicht bei mir
sondern bei den umlauten
einen vorschlag hätte ich allerdings schon
Code: | IF LCASE(farbe(1 TO 15)) TO UCASE(farbe(1 TO 15)) = LCASE(eingabe)TO UCASE(eingabe) THEN... |
was haltet ihr davon?
aber erstmal vielen dank und ich werde eure Lösungsvorschlage natürlich studieren bis ich sie selber verstehen kann
obwohl ich von FUNCTIONEN absolut keine ahnung habe  |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 24.07.2009, 00:02 Titel: |
|
|
du hast schonmal sowas gepostet... was verstehst du bitte unter LCASE(Array) TO UCASE(Array)? _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
The_Muh aka Mark Aroni

Anmeldungsdatum: 11.09.2006 Beiträge: 718
|
Verfasst am: 24.07.2009, 00:15 Titel: |
|
|
vielleicht meint er lbound() und ubound() *mutmaß* _________________ // nicht mehr aktiv // |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 24.07.2009, 21:01 Titel: |
|
|
Muttonhead hat Folgendes geschrieben: | Code: | if tmpasc=228 then tmpasc=132 'ae
if tmpasc=246 then tmpasc=148 'oe
if tmpasc=252 then tmpasc=129 'ue
if tmpasc=196 then tmpasc=142 'AE
if tmpasc=214 then tmpasc=153 'OE
if tmpasc=220 then tmpasc=154 'UE
if tmpasc=223 then tmpasc=225 '"Eszett" zu "Beta"??? |
|
Da lese ich übrigens etwas ganz Interessantes heraus: Anscheinend liefert FB bei INPUT internationale Zeichen als ISO 8859-1 (Latin 1), möchte aber für PRINT MS-DOS-Zeichensatz (Codepage 437 oder 850).
Übrigens hätte ich aus eigenen Projekten Codebeispiele für derartige Funktionen, die so ziemlich den kompletten Zeichensatz im Bereich CHR$(128)-CHR$(255) abdecken, so dass die Umwandlung für praktisch alle westeuropäischen Sprachen klappt. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
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.
|
|