PHP nach AutoIt

10/16/2011 20:04 Whoknowsit#1
Moin,

ich hab grad nen Hänger.

Ich habe folgendes in PHP:

PHP Code:
<?php
$characters 
'ZYXWVUTSRQPNMLKJHGFEDCBA987654321';
$x 'Hallo Welt, dies ist ein Test. Das Ergebnis sollte 7 sein.';

echo 
$characters[strlen($x) % 33 + (int)(strlen($x) / 33)];
?>
Irgendwer eine Idee, wie ich das nach AutoIt portiert bekomme?

So weit bin ich bisher:

Code:
$characters = StringSplit('ZYXWVUTSRQPNMLKJHGFEDCBA987654321', '')
$x = 'Hallo Welt, dies ist ein Test. Das Ergebnis sollte 7 sein.'

Return $characters[Mod(StringLen($x), 33) + int(StringLen($x) / 33)]
Ich erhalte hier jedoch "8" und nicht "7".
10/16/2011 22:08 BlackHybrid#2
PHP Code:
$characters StringSplit('ZYXWVUTSRQPNMLKJHGFEDCBA987654321'''2)
$x 'Hallo Welt, dies ist ein Test. Das Ergebnis sollte 7 sein.'

Return $characters[Mod(StringLen($x), 33) + int(StringLen($x) / 33)] 
Wenn du in PHP das erste zeichen willst befindet sich die im ersten (0) Array. Bei StringSplit befindet sich ohne den letzten Parameter auf 2 im ersten Array die Anzahl der Arrays. Somit geht es mit 1 erst los.
10/16/2011 22:26 Whoknowsit#3
Dann müsste es ja theoretisch ausreichen, wenn ich die Reihe einfach um eine Stelle erweiter, also

Code:
'0ZYXWVUTSRQPNMLKJHGFEDCBA987654321'
Oder?!

EDIT:

Völliger Quark... Okay... Nun bin ich genau so schlau, wie vorher ^^
10/16/2011 23:35 omer36#4
Quote:
Originally Posted by Whoknowsit View Post
Dann müsste es ja theoretisch ausreichen, wenn ich die Reihe einfach um eine Stelle erweiter, also

Code:
'0ZYXWVUTSRQPNMLKJHGFEDCBA987654321'
Oder?!

EDIT:

Völliger Quark... Okay... Nun bin ich genau so schlau, wie vorher ^^
haste es nicht verstanden?
der letzte parameter [flag]) beim StringSplit() hat den default wert "0" d.h. der index des ersten arrays ($array[0]) beinhaltet die anzahl des arrays.

darum hat BlackHybrid den parameter auf "2" gesetz, so hat der erste index gleich dein ergebnis..

$characters = StringSplit('ZYXWVUTSRQPNMLKJHGFEDCBA987654321', '', 2)
10/17/2011 00:01 Whoknowsit#5
Hatte das garnicht gesehen :p Funktioniert aber leider nicht:

Quote:
==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.
EDIT:

UBound vergessen... ^^ Jedoch erhalte ich nun immer nur "2" als Ergebnis?
10/17/2011 01:17 omer36#6
also ich erhalte "7"..

Quote:
Originally Posted by BlackHybrid View Post
PHP Code:
$characters StringSplit('ZYXWVUTSRQPNMLKJHGFEDCBA987654321'''2)
$x 'Hallo Welt, dies ist ein Test. Das Ergebnis sollte 7 sein.'

Return $characters[Mod(StringLen($x), 33) + int(StringLen($x) / 33)] 
bzw

MsgBox("","", $characters[Mod(StringLen($x), 33) + int(StringLen($x) / 33)])
10/17/2011 06:41 Whoknowsit#7
War mein Fehler... ;)

Das mit dem Return hat aber schon seine Richtigkeit. Danke euch :)