Seite 1 von 1

nochmal Konsole & Umlaute

Verfasst: 22.02.2006 16:20
von Ironsmurf
Ich möchte eine Datenbank entwickeln und das aber als Konsolen-Programm,
da ich als Anfänger mit dessen programmierung besser klar komme.
Nun die Darstelltung der Umlaute ist schon möglich, leider weiß ich nicht wie ich die Eingabe auch für Umlaute vorbereite.

Code: Alles auswählen

Procedure print_s(text.s)
CharToOem_(text.s,text.s)
PrintN( text.s)
EndProcedure

OpenConsole()
Dim Movies.s(100)                 

Movies(   0) = "James Bond - 007 - Die Welt ist nicht genug"         
Movies(   1) = "James Bond - 007 - In tödlicher Mission"               
Movies(   2) = "James Bond - 007 - Octopussy"             
Movies(   3) = "James Bond - 007 - Sag niemals nie"           
Movies(   4) = "James Bond - 007 - Stirb an einem anderen Tag"
Movies(   5) = "American Pie 1"
Movies(   6) = "7 Zwerge - Männer allein im Wald"
Movies(   7) = "666 - Trau keinem mit dem Du schläfst"
Movies(   8) = "1492 - Eroberung des Paradieses"


Eingabe$ = Input()

PrintN("")
SortArray (Movies(),2)

For Index.b = 0 To 100
 film$ = movies.s(index)
 If FindString (LCase(film$),LCase(Eingabe$),1)
   Print_s(film$)
 EndIf
Next
Input()   
CloseConsole() 

Für einen guten Rat wäre ich dankbar

Verfasst: 22.02.2006 16:22
von Ironsmurf
PS: Es geht mir darum das bei der Filmsuche, auch Umlaute genommen werden, z.B. tödlich oder männer.

Verfasst: 22.02.2006 17:00
von ts-soft
Das gegenstück von CharToOem_( ist OemToChar_(

Verfasst: 22.02.2006 17:05
von Ironsmurf
Ist richtig, aber irgenwo hatte ich einen Fehler, den beim Input Befehl stieg er immer aus

Verfasst: 23.02.2006 15:56
von KeyKon
So funktionierts doch:

Code: Alles auswählen

Eingabe$ = Input()
OemToChar_(Eingabe$,Eingabe$)
KeyKon

Verfasst: 24.02.2006 03:43
von Ironsmurf
Leider immer noch nicht

Code: Alles auswählen

Procedure print_s(text.s)
CharToOem_(text.s,text.s)
PrintN( text.s)
EndProcedure

Procedure Eingabe_s(Input)
OemToChar_(Eingabe_s,Eingabe_s)
Eingabe_s = Input()
EndProcedure

;Globaliere String$ 
Global Ausgabe$ 
Procedure String(text$) 
  If FindString(Ausgabe$, text$, 1) 
    ProcedureReturn 1 
  Else 
    ProcedureReturn 0 
  EndIf
EndProcedure

Dim Movies.s(10)                 
Movies(   0) = "James Bond - 007 - Die Welt ist nicht genug"         
Movies(   1) = "James Bond - 007 - In tödlicher Mission"               
Movies(   2) = "James Bond - 007 - Octopussy"             
Movies(   3) = "James Bond - 007 - Sag niemals nie"           
Movies(   4) = "James Bond - 007 - Stirb an einem anderen Tag"
Movies(   5) = "American Pie 1"
Movies(   6) = "7 Zwerge - Männer allein im Wald"
Movies(   7) = "666 - Trau keinem mit dem Du schläfst"
Movies(   8) = "1492 - Eroberung des Paradieses"

Dim Stars.s(10)
Stars(   0) = "Roger Moore"
Stars(   1) = "Maud Adams"
Stars(   2) = "Louis Jourdan"
Stars(   3) = "Steven Berkoff"
Stars(   4) = "Desmond Llewelyn"
Stars(   5) = "Lois Maxwell"
Stars(   6) = "Walter Gotell"

OpenConsole()
Repeat
PrintN("")
ConsoleColor(13,0)

Eingabe$ = Input()
PrintN("")
SortArray (Movies(),2)
For Index.b = 0 To 10
ConsoleColor(15,0)
 film$ = movies.s(index)
 If FindString (LCase(film$),LCase(Eingabe$),1)
   Print_s(film$)
 EndIf
Next

SortArray (Stars(),2)
For Index.b = 0 To 10
ConsoleColor(10,0)
 film$ = Stars.s(index)
 If FindString (LCase(film$),LCase(Eingabe$),1)
   Print_s(film$)
 EndIf
Next

ForEver
CloseConsole() 

Habe es noch mal versucht.
Verzeihung, aber manchmal sieht man den Wald vor lauter Bäumen nicht,
Entschuldigung.

Verfasst: 24.02.2006 10:02
von Jake

Code: Alles auswählen

Procedure print_s(text.s)
CharToOem_(text.s,text.s)
PrintN( text.s)
EndProcedure

;Globaliere String$
Global Ausgabe$
Procedure String(text$)
  If FindString(Ausgabe$, text$, 1)
    ProcedureReturn 1
  Else
    ProcedureReturn 0
  EndIf
EndProcedure

Dim Movies.s(10)                 
Movies(   0) = "James Bond - 007 - Die Welt ist nicht genug"         
Movies(   1) = "James Bond - 007 - In tödlicher Mission"               
Movies(   2) = "James Bond - 007 - Octopussy"             
Movies(   3) = "James Bond - 007 - Sag niemals nie"           
Movies(   4) = "James Bond - 007 - Stirb an einem anderen Tag"
Movies(   5) = "American Pie 1"
Movies(   6) = "7 Zwerge - Männer allein im Wald"
Movies(   7) = "666 - Trau keinem mit dem Du schläfst"
Movies(   8) = "1492 - Eroberung des Paradieses"

Dim Stars.s(10)
Stars(   0) = "Roger Moore"
Stars(   1) = "Maud Adams"
Stars(   2) = "Louis Jourdan"
Stars(   3) = "Steven Berkoff"
Stars(   4) = "Desmond Llewelyn"
Stars(   5) = "Lois Maxwell"
Stars(   6) = "Walter Gotell"

OpenConsole()
Repeat
PrintN("")
ConsoleColor(13,0)

Eingabe$ = Input()
OemToChar_(Eingabe$,Eingabe$)
PrintN("")
SortArray (Movies(),2)
For Index.b = 0 To 10
ConsoleColor(15,0)
 film$ = movies.s(index)
 If FindString (LCase(film$),LCase(Eingabe$),1)
   Print_s(film$)
 EndIf
Next

SortArray (Stars(),2)
For Index.b = 0 To 10
ConsoleColor(10,0)
 film$ = Stars.s(index)
 If FindString (LCase(film$),LCase(Eingabe$),1)
   Print_s(film$)
 EndIf
Next

ForEver
CloseConsole()
Was du mit der Procedure Eingabe_s erreichen wolltest ist mir nicht ganz klar. Auf jeden Fall muß dort nicht [c]OemToChar_(Eingabe_s, Eingabe_s)[/c] stehen sonder die Variable in der du die eingabe ablegst, also [c]OemToChar_(Eingabe$, Eingabe$)[/c].
Habe die Procedure mal rausgenommen und es nach unten verschoben.

Verfasst: 24.02.2006 12:35
von Ironsmurf
Vielen herzlichen Dank dafür ! ! !
Als Anfänger ist es manchmal nicht ganz einfach.