Variable wird nicht erhöht?!
Übersicht

DüsiBetreff: Variable wird nicht erhöht?! |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Moin... Ich verzeifle gerade. -.-
Wenn ich alle Zeilen aus einer Funktion auskommantiere bleiben noch folgende Zeilen übrig: Code: [AUSKLAPPEN] Function InstrBack(Value$, Symbol$)
Repeat Pos = Pos + 1 Print Pos Forever End Function Ich rufe die Funktion so auf, wobei das ja egal sein sollte: Code: [AUSKLAPPEN] Print InstrBack("Hallo", "o")
Eigtl. sollte sich nun ja nur die Variable Pos in der Schleife in der Funktion dauernd um eins erhöhen... Das tut es aber nicht?! Es wird immer nur 0 ausgegeben? Was ist an diesen 2 simplen Zeilen falsch? Ich komme einfach nicht drauf. -.- MfG |
||
![]() |
SpionAtom |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ist Pos global?
Sonst wird diese Variable bei jedem Funktionsaufruf zurückgesetzt auf 0. |
||
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080 |
Düsi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
SpionAtom hat Folgendes geschrieben: Ist Pos global?
Sonst wird diese Variable bei jedem Funktionsaufruf zurückgesetzt auf 0. Es ist ja nur ein Funktionsaufruf... Und in der Funktion stehen nur die Zeilen Code: [AUSKLAPPEN] Repeat
Pos = Pos + 1 Print Pos Forever Da sollte es doch relativ egal sein, ob Pos nun Global ist? Danke dennoch soweit. ![]() MfG |
||
![]() |
SpionAtom |
![]() Antworten mit Zitat ![]() |
---|---|---|
Aso ![]() Vielleicht arbeitest du falsch Backbuffer() und Flip(), da gibts Probleme mit der Anzeige bei Print. https://www.blitzforum.de/foru...hp?t=31218 |
||
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080 |
![]() |
Jo0oker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bei mir funzt es super:
Code: [AUSKLAPPEN] InstrBack("","") Function InstrBack(Value$, Symbol$) Repeat Pos = Pos + 1 Print Pos Forever End Function Sicher das du nicht irwas vergessen hast auszukommentieren? Und @Spion, Kann ja net sein das es daran liegt, da bei ihm immer 0 ausgegeben wird -> Er hat ne Grafikausgabe... lg Jo0oker |
||
Tehadon, das kostenlose 3D RPG
www.tehadon.de http://www.blitzforum.de/worklogs/14/ Das Abenteuer wird beginnen! |
- Zuletzt bearbeitet von Jo0oker am Mi, März 25, 2009 15:36, insgesamt einmal bearbeitet
![]() |
robotx |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wieso rufst du die Funktion mit einem Print auf?
Code: [AUSKLAPPEN] Print InstrBack("Hallo", "o")
Da die Funktion keinen String Rückgabewert hat, kommt da natürlich nur Null raus. Ich gehe davon aus, dass die ursprüngliche Funktion irgendwo einen Returnwert hatte. Edit: Habs getestet, geht auch mit Print bei mir. |
||
www.botbomb.robotzgames.de
www.robotzgames.de |
- Zuletzt bearbeitet von robotx am Mi, März 25, 2009 15:36, insgesamt einmal bearbeitet
![]() |
count-doku |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
bei mir läuft alles einwand frei. Hast du schonmal nur den Codeabschnitt laufen lassen? Code: [AUSKLAPPEN] Print InstrBack("Hallo", "o") Function InstrBack(Value$, Symbol$) Repeat Pos = Pos + 1 Print Pos Forever End Function Wenn nicht, löscht du vielleicht irgendwo den Bildschirm? Mfg, Count-Doku |
||
![]() |
Jo0oker |
![]() Antworten mit Zitat ![]() |
---|---|---|
robotx hat Folgendes geschrieben: Wieso rufst du die Funktion mit einem Print auf?
Code: [AUSKLAPPEN] Print InstrBack("Hallo", "o")
Da die Funktion keinen String Rückgabewert hat, kommt da natürlich nur Null raus. Ich gehe davon aus, dass die ursprüngliche Funktion irgendwo einen Returnwert hatte. Weil er doch schrieb, das das die Auskommentierte Version der Funktion ist, vielleicht gibt sie später einen wert zurück ![]() [EDIT]: @count-doku: Kann ja net sein das es daran liegt, da bei ihm immer 0 ausgegeben wird -> Er hat ne Grafikausgabe... lg Jo0oker |
||
Tehadon, das kostenlose 3D RPG
www.tehadon.de http://www.blitzforum.de/worklogs/14/ Das Abenteuer wird beginnen! |
Düsi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Komisch... Den kompletten Inhalt der Datei, diese ich compile und ausführe:
Code: [AUSKLAPPEN] ;============================================
; Funktion - Instr andersrum ; Paramente: ; [STR] Value$ - String ; [STR/CHR] Symbol$ - Zeichen, nach diesem gesucht werden soll ; ; Rückgabe: ; [ERR] -1: Value ist leer ; [ERR] -2: Symbol ist leer oder hat mehr als ein Zeichen ; [ERR] -3: Das Symbol konnte nicht gefunden werden ; [SUC] Position des Symbols ;================================================= InstrBack("Hallo", "o") Print "-------------------------" WaitKey Function InstrBack(Value$, Symbol$) ;============================================== ; Variablen ;============================================== ;Local L$ ;Local Pos ;============================================== ; Value oder Symbol leer? ;============================================== ;If Len(Value) = 0 Then Return -1 ;If Len(Symbol) <> 1 Then Return -2 ;============================================== ; Symbol suchen ;============================================== Repeat ;L = Mid(Value, Len(Value)-Pos, 1) ;If L = Symbol Then Return Pos Pos = Pos + 1 Print Pos Forever ;Until Len(Value) = Pos ;============================================== ; Symbol wurde nicht gefunden ;============================================== ;Return -3 End Function Die Ausgabe: http://s5b.directupload.net/fi...ty_png.htm ~EDITIERT~ Kommentarzeilen gekürzt, hat Layout zerschossen. hamZta |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mir stellt sich auch die Frage nach dem Sinn der Funktion, denn Instr liefert dir ja genauso die Zeichenposition zurück. | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
Düsi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Zitat: Mir stellt sich auch die Frage nach dem Sinn der Funktion, denn Instr liefert dir ja genauso die Zeichenposition zurück.
Gemäß meinen Wissen durchsucht Instr den String von vorne nach hintem nach der gesuchten Zeichenkette? Ich möchte aber den letzten Punkt oder den lezten Backslash von einer Zeichenkette ermitteln. :/ |
||
![]() |
SpionAtom |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] pos = LEN(word$) SOLANGE pos > 0 WIEDERHOLE SCHAUE, OB MID(word$, pos, 1) = suchchar$ FALLS JA, RETURN pos RETURN 0 Pseudo.... Edit: Kein Pseudo, aber nicht getestet Code: [AUSKLAPPEN] Function InstrBack(word$, char$) pos = Len(word$) While pos > 0 If Mid$(word$, pos, 1) = char$ Then Return pos Wend Return 0 End Function |
||
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080 |
Düsi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
SpionAtom hat Folgendes geschrieben: Code: [AUSKLAPPEN]
pos = LEN(word$) SOLANGE pos > 0 WIEDERHOLE SCHAUE, OB MID(word$, pos, 1) = suchchar$ FALLS JA, RETURN pos RETURN 0 Pseudo.... Danke, funktioniert. ![]() Dennoch würde es mich interessieren, wo der Fehler in meinem Ansatz lag. :/ |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ah, das erklärt einiges.
Code: [AUSKLAPPEN] Function lastinstr(zk$,su$)
Local sulen = Len(su) Local zklen = Len(zk) Local pos = zklen If Instr(zk,su) Then Repeat pos=pos-sulen Until Instr(zk,su,pos) Return Instr(zk,su,pos) EndIf End Function Print lastinstr("Hullu Welt lu!","lu") WaitKey() Funzt hier fehlerfrei. EDIT: oh, zu spät |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
faeXBetreff: Rückgabe Null |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Function InstrBack%(Value$, Symbol$)
...wie wärs damit? ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group