Declare Function Reverse(Ori As String) As String Declare Function Revers(ByVal Ori As String) As String Declare Function ReverseInd(Ori As String) As String 'Indexed-Version von ytwinky Function Reverse(Ori As String) As String 'Mid-Version von ytwinky Dim As String m, s=Ori Dim As Integer i, j=Len(s) For i=0 To j\2-1 'only half-len of the string is really needed.. m=Mid(s, i+1, 1) Mid(s, i+1, 1)=Mid(s, j-i, 1) Mid(s, j-i, 1)=m Next Function=s End Function Function ReverseInd(Ori As String) As String 'Indexed-Version von ytwinky Dim As String s=Ori Dim As Integer i, j=Len(s)-1 For i=0 To j\2 'only half-len of the string is really needed.. Swap s[i], s[j-i] Next Function=s End Function Public Function Revers(byVal Txt As String) As String 'Asm-Version von volta Dim Text As String=txt, Lt As Integer=Len(Text) If Lt>1 Then asm mov eax, [Text] 'Anfang des String im RAM mov ebx, [Lt] 'Laenge des String mov esi, eax add eax, ebx dec eax mov edi, eax 'letzes Zeichen des String mov ecx,ebx shr ecx 'ecx =a\2 Laufvariable lnext: mov al, [esi] 'al = Anfang mov ah, [edi] 'ah = Ende mov [edi], al 'Ende = al mov [esi], ah 'Anfang = ah inc esi 'Anfang + 1 dec edi 'Ende - 1 loop lnext 'wie for .. next End asm End If Function=Text End Function '..and an example(or 2): Dim Ori As String="Hello FB-World!" ', Erster Dim As Double A1, E1 Print "Original:";Ori Print "Reverse :";Reverse(Ori) Print "Original:";Ori Print "SystemDir=" &Revers(Mid(Revers(Environ("ComSpec")), Instr(Revers(Environ("ComSpec")), "\")+1)) Ori="gallia est omnis divisa in partes tres qarum unam.." A1=Timer Print Reverse(Ori &"=diM") E1=Timer Print "Mid=" &(E1-A1) A1=Timer Print Revers(Ori &"=msA") E1=Timer Print "Asm=" &(E1-A1) A1=Timer Print ReverseInd(Ori &"=dnI") E1=Timer Print "Ind=" &(E1-A1) Print "(pretty close to Asm and 'far' away from Mid()..)" Print "..don't forget: 'measured' using Timer!!"; GetKey 'have good night ;-))