Zeichen Zählen
Übersicht

DeforationBetreff: Zeichen Zählen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo Zusammen.
Ersteinmal, möchte ich euch alle begrüssen. Denn ich bin neu hier. Und habe schon ein bisschen Erfahrungen mit Blitz 3D gesammelt. Und starte mit einem kleineren Projekt: (Ein 3D 4-Gewinnt). Die Frage hat jedoch nichts mit meinem Projekt zu tun, aber es Interessiert mich sehr. Gibt es eine Möglichkeit, die Anzahl der Buchstaben eines Wortes, Textes zu ermitteln und allenfalls die Buchstaben in einem Array zu speichern. Pro Variabel 1 Buchstabe. Und ist es möglich, aus einer Textdatei mit Wörtern zu sagen, es soll das 2 Wort rauslesen. Dies sind eigentlich fragen, welche für ein Spiel wie Hangman gebraucht werden könnten. Ich bedanke mich Herzlich für eure Aufmerksamkeit. |
||
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sei willkommen ![]() Klar ist das möglich . Dazu brauchst du das hier OpenFile ReadLine CloseFile For i=1 To Len(t$) z$=Mid(t,i) v=Asc(z$) Next zweimal F1 über den Wörtern zeigt dir die Hilfe mit Beispiel in der BB IDE an . |
||
![]() |
skey-z |
![]() Antworten mit Zitat ![]() |
---|---|---|
mit len(text$) kannst du die anzahl der Zeichen eines Strings ermitteln und mit
Code: [AUSKLAPPEN] for i = 0 to len(tex$)
dim char$(i) = mid$(text$, i, 1) next die einzelnen Zeichen in ein Array speichern, natürlich kannst du auch die anzahl der Zeichen vorher in eine variable zwischenspeichern. Hast du die Wörter in der textdatei nebeneinander oder untereinander stehen, wenn sie untereinander stehen ist es ganz einfach: Code: [AUSKLAPPEN] file% = readfile(datei$)
repeat index = index + 1 txt$ = readline(file%) if index = 2 then wort2$ = txt until filepos(file) = filesize(file) closefile(file) |
||
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz BAC#57: 2. Platz |
- Zuletzt bearbeitet von skey-z am Mi, März 21, 2007 13:28, insgesamt 2-mal bearbeitet
Deforation |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo.
Ich möchte mich ganz Herrzlich bei euch für eure schnelle und Informative Hilfe bedanken. ![]() |
||
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sry falls ich falsch liege, aber ich habe dir Frage so verstanden, dass der Threatstarter wissen will, wieviel von jedem Zeichen im Text sind.
Das würde ich so regeln: Code: [AUSKLAPPEN] s$ = "Hallo du da" Dim Zeichen(256) For x = 0 to len(s$) a = asc(mid$(s$,x,1)) zeichen(a) = Zeichen(a) + 1 Next Print Zeichen(asc("a")) ; gibt z.B. aus wieviel a's vorhanden sind Print Zeichen(asc("d")) ; gibt z.B. aus wieviel d's vorhanden sind etc... |
||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
Deforation |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich hätte da nur noch zwei Fragen.
Sie passen nicht ganz in diesen Thread, aber ich schreibe sie trotzdem hier hinein, da ich nicht zu viele Themen eröffnen will. Meine Problemstellung sieht so aus. Repeat Tastanabfrage ; Function .... ; Hier ist das Hauptprogramm updateworld renderworld flip until keyhit(1) Bei der Tastenabfrage-Funktion, steht z.B. grob if keyhit(22) then xkoordinaten +50 endif. Drücke ich im Hauptprogramm nun die Taste (22) veränden sich die Koordinaten Problemlos. Drücke ich jedoch nochmals auf die Taste, scheint sie gesperrt zu sein. Also habe ich nach diesem Misserfolg das ganze mit einem keydown probiert. Aber da ist einfach das ganze zu schnell und man kann das ganze nicht richtig steuern. Nun sind meine Fragen. Kann ich den Keyhit irgendwie so einstellen, dass ich ihn immer wieder brauchen kann? Kann ich der Schleife die Funktion mit den Tastenbefehlen (keydown) irgendwie abbremsen, dass diese funktion erst nach 1 sekunde wieder aufgeruffen werden kann. Ohne dass die Ganze Schleife unterbrochen wird. |
||
![]() |
SpionAtom |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dafür gibts FlushKeys() | ||
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080 |
Deforation |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke für den Tipp.
Werde ich gleich mal ausprobieren sobald ich kann. |
||
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich denke eher du meintest das so
TasteX= keyhit(22) if so then if TasteX then else if was anderes then if TasteX then endif |
||
Deforation |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo ich bin wieder hier und melde mich mit einer Antwort zurück.
Eigentlich bräuchte ich genau so etwas wie der FlushKeys. Der ja alle Tasten zurücksetzt. Der haken ist jedoch, dass er bei mir überhaupt nicht funktioniert. Egal wo ich ihn hinstelle, anfangs der Schleife, am Ende oder nachdem er gebraucht wurde,... Wenn ich ihn setze, funktioniert gar keine Keyhit Taste mehr. Oder gibt es da irgendwas, was ich nicht berücksichtigt habe? Oder was man beachten sollte. |
||
![]() |
SpionAtom |
![]() Antworten mit Zitat ![]() |
---|---|---|
Folgender Code Funktionierte bei mir. (Pfeil hoch/runter)
Code: [AUSKLAPPEN] Graphics 320, 480, 0, 2: SetBuffer BackBuffer(): AppTitle("Tastenabfrage")
Global x, y: x = 160: y = 240 Repeat Tastenabfrage Cls drawBubble x, y Flip Until KeyHit(1) End Function Tastenabfrage() If KeyHit(200) Then y = y - 10: If y < 50 Then y = 450 If KeyHit(208) Then y = y + 10: If y > 450 Then y = 50 FlushKeys() End Function Function drawBubble (x, y) r = 20 Color 100, 100, 100 Oval x - r, y - r, 2 * r, 2 * r, 1 Color 200, 200, 200 Oval x, y - r + 5, 0.66 *r, 0.66 * r, 1 End Function Du kannst aber auch mit KeyDown() KeyHit nachbauen. In diesem Beispiel geben die Variablen KEY_UP und KEY_DOWN den Status der Tasten an. (0 - nicht gedrückt, 1 - Drückstart, 2 - Gedrückt, 3 - Losgelassen) Code: [AUSKLAPPEN] Graphics 320, 480, 0, 2: SetBuffer BackBuffer(): AppTitle("Tastenabfrage 2")
Global x, y: x = 160: y = 240 Global KEY_UP, KEY_DOWN ;0 - nicht gedrückt, 1 - Drückstart, 2 - Gedrückt, 3 - Losgelassen Repeat UpdateKeys Tastenabfrage Cls drawBubble x, y Flip Until KeyHit(1) End Function updateKeys() If KeyDown(200) Then If KEY_DOWN = 0 Then KEY_DOWN = 1 Else KEY_DOWN = 2 Else If KEY_DOWN = 3 Then KEY_DOWN = 0 Else If KEY_DOWN <> 0 Then KEY_DOWN = 3 End If If KeyDown(208) Then If KEY_UP = 0 Then KEY_UP = 1 Else KEY_UP = 2 Else If KEY_UP = 3 Then KEY_UP = 0 Else If KEY_UP <> 0 Then KEY_UP = 3 End If End Function Function Tastenabfrage() If KEY_DOWN = 1 Then y = y - 10: If y < 50 Then y = 450 If KEY_UP = 1 Then y = y + 10: If y > 450 Then y = 50 FlushKeys() End Function Function drawBubble (x, y) r = 20 Color 100, 100, 100 Oval x - r, y - r, 2 * r, 2 * r, 1 Color 200, 200, 200 Oval x, y - r + 5, 0.66 *r, 0.66 * r, 1 End Function |
||
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080 |
Deforation |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke für eure Hilfe.
Jetzt ist jedoch etwas komisches passiert. Ich habe es nochmals probiert, das mit dem Keyhit und jetzt funktioniert es problemlos. Ich habe keine Ahnung, woran das liegt. Aber denn noch, danke ich euch, dass ihr mir so fest geholfen habt. Zusätzlich, habe ich dank euch auch noch etwas dazugelernt. |
||
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sowas solltest du vermeiden
if irgendwann then if keyhit(22)>0 then mach was endif weil der Puffer so nicht gelerrt wird und Keyhit ja alle Anschläge zählt seit dem man die Taste mit Keyhit() abgefragt hat . |
||
Deforation |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also jetzt habe ich es so gemacht.
if keyhit(22) then x=x+1 if keyhit(23) then Y=Y+1 |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group