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
Nutze Mid fast nie

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

Setzen, 6...schäm dich

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

Setzen, 6...schäm dich

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()