Seite 5 von 16

Re: Wäre es nicht mal wieder an der Zeit...

Verfasst: 16.04.2012 13:10
von Sirius-2337
Hier mal meine Version.
Ich habs komplett von vorn gemacht weil ich keine Lust hatte in dem Gewirr nen Fehler zu suchen.
Es sind 915 Zeichen und er Funktioniert.

Code: Alles auswählen

EnableExplicit
Global d=1000,f,b,m
Global.s c,e="+-<>.,[]",g,h,i,j,l
Macro U
Input()
EndMacro
Macro V
Case
EndMacro
Macro W
EndIf
EndMacro
Macro X
Procedure
EndMacro
Macro Y
End#X
EndMacro
Macro Z(a=1)
b=a
Repeat
m+a
If Mid(c,m,1)="]"
b-1
ElseIf Mid(c,m,1)="["
b+1
W
Until b=0
EndMacro
X A()
Print(#CRLF$+#CRLF$+"Press ENTER to exit")
U
End
Y
X B(n$)
PrintN(n$)
A()
Y
If OpenConsole()=0
MessageRequester("Error","Unable to open console.")
End
W
Print("Filename (blank to use std in)...?")
g=U
If g=""
Repeat
h=U
i=i+h
Until h=""
Else
OpenFile(1,g)
Repeat
i+ReadString(1)
Until Eof(1)
CloseFile(1)
W
b=0
For m=1 To Len(i)
j=Mid(i,m,1)
If FindString(e,j,1)
c+j
If j="["
b+1
ElseIf j="]"
b-1
W
W
Next
If b
B("Uneven brackets")
W
Dim k(d)
For m=1 To Len(c)
Select Asc(Mid(c,m,1))
V 43
k(f)+1
V 45
k(f)-1
V 46
Print(Chr(k(f)))
V 44
If l=""
l=U
W
k(f)=Asc(Left(l,1))
l=Mid(l,2)
V 62
f+1
If f>d
d+1000
ReDim k(d)
W
V 60
f-1
If f<0
B("Memory pointer out of range")
W
V 91
If k(f)=0
Z()
W
V 93
If k(f)<>0
Z(-1)
W
EndSelect
Next
A()

Re: Wäre es nicht mal wieder an der Zeit...

Verfasst: 16.04.2012 13:17
von NicTheQuick
912

Code: Alles auswählen

EnableExplicit
Global d=1000,f,b,m
Global.s c,e="+-<>.,[]",g,h,i,j,l
Macro U
Input()
EndMacro
Macro V
Case
EndMacro
Macro W
EndIf
EndMacro
Macro X
Procedure
EndMacro
Macro Y
End#X
EndMacro
Macro Z(a=1)
b=a
Repeat
m+a
If Mid(c,m,1)="]"
b-1
ElseIf Mid(c,m,1)="["
b+1
W
Until b=0
EndMacro
X A()
Print(#CRLF$+#CRLF$+"Press ENTER to exit")
U
End
Y
X B(n$)
PrintN(n$)
A()
Y
If OpenConsole()=0
MessageRequester("Error","Unable to open console.")
End
W
Print("Filename (blank to use std in)...?")
g=U
If g
OpenFile(1,g)
Repeat
i+ReadString(1)
Until Eof(1)
CloseFile(1)
Else
Repeat
h=U
i=i+h
Until h=""
W
b=0
For m=1 To Len(i)
j=Mid(i,m,1)
If FindString(e,j,1)
c+j
If j="["
b+1
ElseIf j="]"
b-1
W
W
Next
If b
B("Uneven brackets")
W
Dim k(d)
For m=1 To Len(c)
Select Asc(Mid(c,m,1))
V 43
k(f)+1
V 45
k(f)-1
V 46
Print(Chr(k(f)))
V 44
If l=""
l=U
W
k(f)=Asc(Left(l,1))
l=Mid(l,2)
V 62
f+1
If f>d
d+1000
ReDim k(d)
W
V 60
f-1
If f<0
B("Memory pointer out of range")
W
V 91
If k(f)=0
Z()
W
V 93
If k(f)<>0
Z(-1)
W
EndSelect
Next
A()

Re: Wäre es nicht mal wieder an der Zeit...

Verfasst: 16.04.2012 13:24
von 7x7

Code: Alles auswählen

EnableExplicit
Global d=9,f,b,m
Global.s c,e="+-<>.,[]",g,h,i,j,l
Macro U
Input()
EndMacro
Macro V
Case
EndMacro
Macro W
EndIf
EndMacro
Macro X
Procedure
EndMacro
Macro Y
End#X
EndMacro
Macro Z(a=1)
b=a
Repeat
m+a
If Mid(c,m,1)="]"
b-1
ElseIf Mid(c,m,1)="["
b+1
W
Until b=0
EndMacro
X A()
Print(#CRLF$+#CRLF$+"Press ENTER to exit")
U
End
Y
X B(n$)
PrintN(n$)
A()
Y
If OpenConsole()=0
MessageRequester("Error","Unable to open console.")
End
W
Print("Filename (blank to use std in)...?")
g=U
If g
OpenFile(1,g)
Repeat
i+ReadString(1)
Until Eof(1)
CloseFile(1)
Else
Repeat
h=U
i=i+h
Until h=""
W
b=0
For m=1 To Len(i)
j=Mid(i,m,1)
If FindString(e,j,1)
c+j
If j="["
b+1
ElseIf j="]"
b-1
W
W
Next
If b
B("Uneven brackets")
W
Dim k(d)
For m=1 To Len(c)
Select Asc(Mid(c,m,1))
V 43
k(f)+1
V 45
k(f)-1
V 46
Print(Chr(k(f)))
V 44
If l=""
l=U
W
k(f)=Asc(Left(l,1))
l=Mid(l,2)
V 62
f+1
If f>d
d+d
ReDim k(d)
W
V 60
f-1
If f<0
B("Memory pointer out of range")
W
V 91
If k(f)=0
Z()
W
V 93
If k(f)<>0
Z(-1)
W
EndSelect
Next
A()
906

Re: Wäre es nicht mal wieder an der Zeit...

Verfasst: 16.04.2012 13:28
von ts-soft
Der Fehler war das weglassen, des letzten Parameters in Mid, default ist ja nicht 1 sondern alle ab :mrgreen:
Nutze Mid fast nie :oops:

Re: Wäre es nicht mal wieder an der Zeit...

Verfasst: 16.04.2012 13:35
von 7x7
ts-soft hat geschrieben:Nutze Mid fast nie :oops:
Setzen, 6...schäm dich :mrgreen:

Re: Wäre es nicht mal wieder an der Zeit...

Verfasst: 16.04.2012 13:43
von ts-soft
7x7 hat geschrieben:
ts-soft hat geschrieben:Nutze Mid fast nie :oops:
Setzen, 6...schäm dich :mrgreen:
Ich werde mich nicht dafür schämen, das ich diese Function meist durch schnelleres pointern ersetze.
Schäme mich nur, den Fehler eingebaut zu haben.

Re: Wäre es nicht mal wieder an der Zeit...

Verfasst: 16.04.2012 13:45
von Sirius-2337
905

Code: Alles auswählen

EnableExplicit
Global d=9,f,b,m
Global.s c,e="+-<>.,[]",g,h,i,j,l
Macro U
Input()
EndMacro
Macro V
Case
EndMacro
Macro W
EndIf
EndMacro
Macro X
Procedure
EndMacro
Macro Y
End#X
EndMacro
Macro Z(a=1)
b=a
Repeat
m+a
If Mid(c,m,1)="]"
b-1
ElseIf Mid(c,m,1)="["
b+1
W
Until b=0
EndMacro
X A()
Print(#CRLF$+#CRLF$+"Press ENTER to exit")
U
End
Y
X B(n$)
PrintN(n$)
A()
Y
If OpenConsole()=0
MessageRequester("Error","Unable to open console.")
End
W
Print("Filename (blank to use std in)...?")
g=U
If g
OpenFile(1,g)
Repeat
i+ReadString(1)
Until Eof(1)
CloseFile(1)
Else
Repeat
h=U
i=i+h
Until h=""
W
b=0
For m=1 To Len(i)
j=Mid(i,m,1)
If FindString(e,j,1)
c+j
If j="["
b+1
ElseIf j="]"
b-1
W
W
Next
If b
B("Uneven brackets")
W
Dim k(d)
For m=1 To Len(c)
Select Asc(Mid(c,m,1))-40
V 3
k(f)+1
V 5
k(f)-1
V 6
Print(Chr(k(f)))
V 4
If l=""
l=U
W
k(f)=Asc(Left(l,1))
l=Mid(l,2)
V 22
f+1
If f>d
d+d
ReDim k(d)
W
V 20
f-1
If f<0
B("Memory pointer out of range")
W
V 51
If k(f)=0
Z()
W
V 53
If k(f)<>0
Z(-1)
W
EndSelect
Next
A()

Re: Wäre es nicht mal wieder an der Zeit...

Verfasst: 16.04.2012 13:52
von ts-soft
901

Code: Alles auswählen

EnableExplicit
Global d=9,f,b,m
Global.s c,e="+-<>.,[]",g,h,i,j,l
Macro U
Input()
EndMacro
Macro V
Case
EndMacro
Macro W
EndIf
EndMacro
Macro X
Procedure
EndMacro
Macro Y
End#X
EndMacro
Macro Z(a=1)
b=a
Repeat
m+a
If Mid(c,m,1)="]"
b-1
ElseIf Mid(c,m,1)="["
b+1
W
Until b=0
EndMacro
X A()
Print(#LF$+#LF$+"Press ENTER to exit")
U
End
Y
X B(n$)
PrintN(n$)
A()
Y
If OpenConsole()=0
MessageRequester("Error","Unable to open console.")
End
W
Print("Filename (blank to use std in)...?")
g=U
If g
OpenFile(1,g)
Repeat
i+ReadString(1)
Until Eof(1)
CloseFile(1)
Else
Repeat
h=U
i=i+h
Until h=""
W
b=0
For m=1 To Len(i)
j=Mid(i,m,1)
If FindString(e,j,1)
c+j
If j="["
b+1
ElseIf j="]"
b-1
W
W
Next
If b
B("Uneven brackets")
W
Dim k(d)
For m=1 To Len(c)
Select Asc(Mid(c,m,1))-40
V 3
k(f)+1
V 5
k(f)-1
V 6
Print(Chr(k(f)))
V 4
If l=""
l=U
W
k(f)=Asc(Left(l,1))
l=Mid(l,2)
V 22
f+1
If f>d
d+d
ReDim k(d)
W
V 20
f-1
If f<0
B("Memory pointer out of range")
W
V 51
If k(f)=0
Z()
W
V 53
If k(f)<>0
Z(-1)
W
EndSelect
Next
A() 

Re: Wäre es nicht mal wieder an der Zeit...

Verfasst: 16.04.2012 13:57
von STARGÅTE
The Shark hat geschrieben:Kann mir jemand sagen, was daran falsch ist:

Code: Alles auswählen

Macro m(a,b,c)
Macro a
b
c#ndMacro
EndMacro

m(e,EndProcedure,e)
Macros können nicht verschachtelt werden! Der aufruf von Macro ... Macro ist also nicht erlaubt, auch wenn er "verkleidet wird"

Re: Wäre es nicht mal wieder an der Zeit...

Verfasst: 16.04.2012 14:00
von Sirius-2337
900
Edit: 899

Code: Alles auswählen

EnableExplicit
Global d=9,f,b,m
Global.s c,e="+-<>.,[]",g,h,i,j,l
Macro U
Input()
EndMacro
Macro V
Case
EndMacro
Macro W
EndIf
EndMacro
Macro X
Procedure
EndMacro
Macro Y
End#X
EndMacro
Macro Z(a=1)
b=a
Repeat
m+a
If Mid(c,m,1)="]"
b-1
ElseIf Mid(c,m,1)="["
b+1
W
Until b=0
EndMacro
X A()
Print(#LF$+#LF$+"Press ENTER to exit")
U
End
Y
X B(n$)
PrintN(n$)
A()
Y
If OpenConsole()=0
MessageRequester("Error","Unable to open console.")
End
W
Print("Filename (blank to use std in)...?")
g=U
If g
OpenFile(1,g)
Repeat
i+ReadString(1)
Until Eof(1)
CloseFile(1)
Else
Repeat
h=U
i+h
Until h=""
W
b=0
For m=1 To Len(i)
j=Mid(i,m,1)
If FindString(e,j,1)
c+j
If j="["
b+1
ElseIf j="]"
b-1
W
W
Next
If b
B("Uneven brackets")
W
Dim k(d)
For m=1 To Len(c)
Select Asc(Mid(c,m,1))-40
V 3
k(f)+1
V 5
k(f)-1
V 6
Print(Chr(k(f)))
V 4
If l=""
l=U
W
k(f)=Asc(Left(l,1))
l=Mid(l,2)
V 22
f+1
If f>d
d+d
ReDim k(d)
W
V 20
f-1
If f<0
B("Memory pointer out of range")
W
V 51
If k(f)=0
Z()
W
V 53
If k(f)<>0
Z(-1)
W
EndSelect
Next
A()