Млин, всё как-то нелегко.
На php это реализуется так:
Как на попроще C нинаю
<?
$ITEM = "100текст#Aтекст2#Bтекст3#Стекст4@200текст#Aтекст12#Bтекст12#Стекст12@300текст#Aтекст22#Bтекст23#Стекст24";
$string = explode("@",$ITEM);
for ($i=0;$i<count($string);$i++)
{
$podpole = explode("#",$string[$i]);
$index = preg_match("/[0-9]{1,3}/",$podpole[0],$pole);
$podpole[0] = preg_replace("/[0-9]{1,5}/","",$podpole[0]);
$result[$pole[0]]["podpole"] = $podpole[0];
for ($j=1;$j<count($podpole);$j++)
{
$result[$pole[0]][substr($podpole[$j],0,1)]=substr($podpole[$j],1,strlen($podpole[$j]));
}
}
echo "<pre>";
print_r($result);
echo "</pre>";
?>