Buchstaben aus text einzeln herrausholen

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Yankee

Betreff: Buchstaben aus text einzeln herrausholen

BeitragSo, Mai 14, 2006 12:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,
Ich arbeite gerade an einem coolem Sprachprogramm wo man was eingeben kann und dann spreche ich den Satz mit einzelnen Buchstaben.
So, jetzt habe ich aber das problem, dass ich nicht weis, wie man die Buchstaben da einzeln herrausholen kann. (bei Input)

Kann jmd helfen?


Danke,


Yankee
Um so kleiner der code, um so schwieriger den Fehler zu finden:


Siehst du den Fehler?
Klick mal hier drauf... hehehe

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSo, Mai 14, 2006 12:12
Antworten mit Zitat
Benutzer-Profile anzeigen
das ist doch einfach, mach eine FOR Schleife mit MID und LEN

Bespiel:
Code: [AUSKLAPPEN]
Eingabe$ = Input()
Output(Eingabe$)

Function Output(Eingabe$)
   For pos% = 1 To Len(Eingabe$)
      Play(Mid(eingabe,Pos,1))
   Next
End Function

Function Play(Buchstabe$)
.....
End Function
[BB2D | BB3D | BB+]

Yankee

BeitragSo, Mai 14, 2006 12:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Shocked
Äh.... Also bei dem Code versteh ich 0,0...
Kannst du mir das mal ganz langsam erklären bitte?


Danke,



Yankee
Um so kleiner der code, um so schwieriger den Fehler zu finden:


Siehst du den Fehler?
Klick mal hier drauf... hehehe

Mr.Keks

BeitragSo, Mai 14, 2006 12:18
Antworten mit Zitat
Benutzer-Profile anzeigen
ql:Mid
damit holst du buchstaben einzeln aus nem string raus.
MrKeks.net

Yankee

BeitragSo, Mai 14, 2006 12:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Aha, aber wie muss ich das jetzt machen bei "Function Play(Buchstabe$)" ?


Bitte helft nochmal,




Yankee
Um so kleiner der code, um so schwieriger den Fehler zu finden:


Siehst du den Fehler?
Klick mal hier drauf... hehehe

Artemis

BeitragSo, Mai 14, 2006 12:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich kenne keinerlei Funktion namens Play.
Was macht die denn, oder was willst du der übergeben?
Falls du der jedoch jeden einzelnen Buchstaben eines Wortes übergeben willst, musst du das so machen:
BlitzBasic: [AUSKLAPPEN]
;Klick auf die Funktionsnamen, falls du nicht weißt was sie machen
Wort$ = "Hallo"
For Buchstabe = 1 To Len(Wort$) ;Geht jeden Buchsteben im Wort durch
Play(Mid(Wort$, Buchstabe, 1))Nimmt immer einen Buchstebenl des Wortes, und übergibt ihn der Funktion
Next

SpionAtom

BeitragSo, Mai 14, 2006 12:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich denke mal, dass Play ein einfacher Platzhalter ist für das, was du mit dem Buchstaben vorhast.

Ok, hier nochmal ein Beispiel: Rolling Eyes
Code: [AUSKLAPPEN]

t$ = "Ich bin ein Text"
tl = Len(t$) ;Länge des Textes ermitteln

For i = 1 To tl
   b$ = Mid$(t$, i, 1) ;i-ten Buchstaben aus dem Text filtern
   Print i + ". Buchstabe: " + b$
Next

WaitKey()
End
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080

Yankee

BeitragSo, Mai 14, 2006 12:55
Antworten mit Zitat
Benutzer-Profile anzeigen
OK, jetzt hab ich es so:
Code: [AUSKLAPPEN]

Graphics 640,480
SetBuffer BackBuffer()

;alle sounds laden
Global a = LoadSound("a.wav")
......;bis z

While Not KeyHit(1)

   Eingabe$ = Input("dein satz bitte:")
   Output(Eingabe$)
   
Wend

;hier Funktionen
Function Output(Eingabe$)
   For pos% = 1 To Len(Eingabe$)
      Play(Mid(Eingabe$,pos,1))
   Next
End Function

Function Play(Buchstabe$)
   PlaySound Buchstabe$
   Delay 300
End Function


grml....

Jetzt kommt da immer "Illegal Memory Adress"

Bitte helft nochmal^^

Danke,


Yankee
Um so kleiner der code, um so schwieriger den Fehler zu finden:


Siehst du den Fehler?
Klick mal hier drauf... hehehe

SoNenTyp

BeitragSo, Mai 14, 2006 13:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Debug aktivieren. Dann sind die Fehelrmeldungen um einiges Aufschlussreicher.
Gruss Der Typ.

User posted image

Yankee

BeitragSo, Mai 14, 2006 13:07
Antworten mit Zitat
Benutzer-Profile anzeigen
OK, den Sound, den gibt es nicht, sagt die Fehlermeldung. Sad



Weis jetzt jmd was falsch ist?


Danke,



Yankee
Um so kleiner der code, um so schwieriger den Fehler zu finden:


Siehst du den Fehler?
Klick mal hier drauf... hehehe

SoNenTyp

BeitragSo, Mai 14, 2006 13:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Anscheinend konnte er die Datei nicht finden aus der du den Sound laden wolltest. Überprüf mal die Schreibweise.
Gruss Der Typ.

User posted image

Firstdeathmaker

BeitragSo, Mai 14, 2006 13:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Du schreibst ja "Playsound Buchstabe$"
Du sagst dem Program damit, dass es den Sound abspielen soll, den du in der Variable "Buchstabe" gespeichert hast. In der Variable ist aber nur der String des entsprechenden Buchstaben enthalten. Was du jedoch machen musst, ist, entweder, eine große select-case Anweisung schreiben nach dem Schema
Code: [AUSKLAPPEN]

select Buchstabe
 case "a" playsound a
 case "b" playsound b
end select


oder du wandelst den Buchstaben in der Variable "Buchstabe" per "asc" in einen ASCII Wert um und lädst die Sounds für die Buchstaben vorher in ein Dim-Feld unter den entsprechenden ASCII Werten:

Code: [AUSKLAPPEN]
dim Buchstaben(255)
for i=0 to 255
 Buchstaben(i) = loadsound(i+".wav")
next


und nachher:
Code: [AUSKLAPPEN]
local AscWert = asc(Buchstabe)
if Buchstaben(AscWert)<>Null playsound(Buchstaben(AscWert)


Achtung, sind alles nur Pseudocodes, also nur vom Prinzip her richtig.
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon
Gewinner des BCC #57 User posted image

Artemis

BeitragSo, Mai 14, 2006 13:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Das liegt wohl daran, dass die dateien wahrscheinlich nicht "a", "b",... heißen sondern "a.wav". Das musst du in einer der Funktionen hinzufügen.
Ein zusätzlich Problem wirst du haben, wenn das Sonderzeichen oder leerzeichen im satz sind, die nicht als dateinamen erlaubt sind. Diese musst du vorher filtern und umbennen.

Yankee

BeitragSo, Mai 14, 2006 13:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Ne mit den Globals hab ich alles richtig, ich denke der Fehler ist bei:
Code: [AUSKLAPPEN]


...

Function Play(Buchstabe$)
   PlaySound Buchstabe$
   Delay 300
End Function




Oder?
Ich denke ja, aber ich weis net was



Danke,


Yankee
Um so kleiner der code, um so schwieriger den Fehler zu finden:


Siehst du den Fehler?
Klick mal hier drauf... hehehe

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSo, Mai 14, 2006 13:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Du möchtest doch für jeden Buchstaben einen bestimmten sound abspielen, und das macht du in der Function Play
Firstdeathmaker hat dir das auch schon beschrieben wie es einfach geht!
[BB2D | BB3D | BB+]

Yankee

BeitragSo, Mai 14, 2006 19:13
Antworten mit Zitat
Benutzer-Profile anzeigen
OK danke an alle,



Yankee
Um so kleiner der code, um so schwieriger den Fehler zu finden:


Siehst du den Fehler?
Klick mal hier drauf... hehehe

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group