gibt's eine fertige Funktion in PB für sowas:
http://www.php4-forum.de/befehle/strrev.htm
Oder muss man das händisch programmieren mit einer Schleife wie hier:
Code: Alles auswählen
For i=Len(STR) To 1 Step -1:erg=erg+Chr(Asc(Mid(STR,i,1))):Next
Code: Alles auswählen
For i=Len(STR) To 1 Step -1:erg=erg+Chr(Asc(Mid(STR,i,1))):Next
In PB gibt es keine Funktion dafür, das mußt du dir selber schreiben, ist aber nicht viel aufwand.Delle hat geschrieben:Hallo,
gibt's eine fertige Funktion in PB für sowas:
http://www.php4-forum.de/befehle/strrev.htm
Oder muss man das händisch programmieren mit einer Schleife wie hier:
Code: Alles auswählen
For i=Len(STR) To 1 Step -1:erg=erg+Chr(Asc(Mid(STR,i,1))):Next
Code: Alles auswählen
String$="Hallo"
For a=Len(String$) To 1 Step -1
Neustring$+Mid(String$,a,1)
Next
Debug Neustring$
Code: Alles auswählen
str = "Hallo"
print str[::-1]
Code: Alles auswählen
;String umdrehen
;hjbremer PB 4.2 Win XP
Procedure.s StrRev(a$)
*start.character = @a$
*ende.character = *start + Len(a$) - 1
Repeat
Swap *start\c, *ende\c
PokeC(*start, *start\c)
PokeC(*ende, *ende\c)
*start + 1
*ende - 1
Until *start > *ende
ProcedureReturn a$
EndProcedure
a$ = "I love PureBasic"
a$ = StrRev(a$)
Debug a$
;und nun noch etwas schneller denke ich, aber mit Apibefehl lstrlen_
Procedure StrRev2(*start.character)
*ende.character = *start + lstrlen_(*start) -1
Repeat
Swap *start\c, *ende\c
PokeC(*start, *start\c)
PokeC(*ende, *ende\c)
*start + 1
*ende - 1
Until *start > *ende
EndProcedure
a$ = "I love PureBasic"
StrRev2(@a$)
Debug a$
Code: Alles auswählen
Structure tChar
s.s { 1 }
EndStructure
Define.s sEingabe = "Hallo Welt"
Define.s sAusgabe
Define.tChar *Iterator = @ sEingabe + StringByteLength ( sEingabe )
Define *EOA = @ sEingabe
While *EOA <= *Iterator
sAusgabe + *Iterator\s
*Iterator - SizeOf ( tChar )
Wend
Debug sAusgabe
Code: Alles auswählen
Procedure ReverseString(*Text.Character)
Protected *ende.Character=*Text+MemoryStringLength(*Text)<<#PB_Compiler_Unicode-SizeOf(Character)
While *Text < *Ende
Swap *Text\c, *ende\c
*Text+SizeOf(Character)
*ende-SizeOf(Character)
Wend
EndProcedure
test$="Hallo"
ReverseString(@test$)
Debug test$
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
Code: Alles auswählen
repeat
for i = 65 to 90
if getasynckeystate_(i) or getasynckeystate_(#vk_space)
keybd_event_(#vk_left,0,0,0): keybd_event_(#vk_left,0k#keyeventf_keyup,0)
endif
next i
delay(10)
if getasynckeystate_(#vk_escape):quit = 1:endif
until quit = 1