Ursäkta taskig rubrik. Jag har korsordspositionsinfo i strängar med följande format:
A (1-4) : Ett ord i Rad A, från kol 1 till 4
C (1-19) : Ett ord i Rad A, från kol 1 till 19
F (15-23) : Ett ord i Rad A, från kol 15 till 23
1 (A-F) : Ett ord i kol 1, från rad A till F
et.c.
dvs siffrorna är mellan 1 och 99, bokstäverna mellan A och ZZ.
Frågan är: Hur plockar jag enklast ut rad och kolumninfo ur strängen?
För närvarande gör jag följande, och något blir fel:
$firstBlank = strpos($arr["Pos"], ' '); //Första mellanslaget
$firstPart = substr($arr["Pos"], 0, $p);
if (isDigit($firstPart)) { //Down 1 (A-D)
$parStart = strpos($arr["Pos"], '(');
$middle = strpos($arr["Pos"], '-');
$startRow = substr($arr["Pos"], $parStart + 1, $middle);
$stoppRow = chr(ord($startRow) + strlen($arr["Svar"]));
//....
}
else { //Across A (1-4)
$parStart = strpos($arr["Pos"], '(');
$middle = strpos($arr["Pos"], '-');
$startCol = substr($arr["Pos"], $parStart + 1, $middle);
$stoppCol = $startCol + strlen($arr["Svar"]);
echo "ps: ".$parStart.", m: ".$middle.", sC: ".$startCol.", pC: ".$stoppCol."<BR>";
//....
}
Utskriften visar att stoppCol är helt fel. Dessutom känns det som om det borde gå att göra bättre rent allmänt...