|
|
|
|
|
для: Gandzas
(19.11.2006 в 15:38)
| | Все, нашла решение.
<?php
$arr = array (2,3,10,3,32,32,8,5,5,2,2,3,9,11,128,15,6);
if (file_exists('city.txt'))
{
$fp=fopen('city.txt',"r");
$fp2=fopen('sale.txt',"w");
while($city=fread($fp,276))
{
$pos=0;
$i=0;
$str = array();
foreach ($arr as $len)
{
$str[$i++] = substr($city, $pos, $len);
$pos += $len;
}
fputs($fp2,implode('|', $str)."\r\n");
}
fclose($fp);
fclose($fp2);
}
?>
|
Сразу с записью в файл sale.txt | |
|
|
|
|
|
|
|
для: kasmanaft
(19.11.2006 в 10:17)
| | Воспользовалась Вашим кодом. На экран выведена только первая строка :(
P.S. Мне не лень, я просто не знаю как. Вот и пытаюсь так, как могу... | |
|
|
|
|
|
|
|
для: Gandzas
(19.11.2006 в 07:53)
| | $city, подставленный в функцию должон быть сторокой, а он у вас массив. И занесите {x} в скобки
попробуйте файл в строку собрать:
$city=file_get_contents('city.txt');
|
И вместо eregi используйте регистрозависимый вариант ereg, он работает немного быстрее, а разницы в результате тут не будет
пс: не лень было вот это "echo $nov[1].'|'.$nov[... " писать? :)
можно было циклом воспользоваться ...
пспс: я бы наверное вот так сделал:
<?php
$arr = array (2, 3, 10, 3, 32, 32, 8, 5, 2, 2, 3, 9, 11, 128, 15, 6);
$str = array();
$pos = 0;
if (file_exists('city.txt'))
{
$city=file_get_contents('city.txt');
foreach ($arr as $len)
{
$str[] = substr($city, $pos, $len);
$pos += $len;
}
echo implode('|', $str)."<br>";
}
else echo 'такого файла нет';
?>
|
| |
|
|
|
|
|
|
| Есть текстовый файл (city.txt) с данными (текст, спецсимволы, цифры...)
В нем нужно разобрать данные следующим образом:
Найти 2 любых символа - поставить знак |
Найти 3 любых символа - поставить знак |
Найти 10 любых символа - поставить знак |
Найти 3 любых символа - поставить знак |
Найти 32 любых символа - поставить знак |
Найти 32 любых символа - поставить знак |
Найти 8 любых символа - поставить знак |
Найти 5 любых символа - поставить знак |
Найти 2 любых символа - поставить знак |
Найти 2 любых символа - поставить знак |
Найти 3 любых символа - поставить знак |
Найти 9 любых символа - поставить знак |
Найти 11 любых символа - поставить знак |
Найти 128 любых символа - поставить знак |
Найти 15 любых символа - поставить знак |
Найти 6 любых символа - поставить знак конец строки
И так по всему тексту. Можно результат вывести на экран, а еще лучше - перезаписать в этот же файл. У меня так ничего и не получилось....
Вот последняя попытка, но все равно ничего не выходит:
<?php
$city=file('city.txt');
if (!file_exists('city.txt')) echo 'такого файла нет';
if(eregi("(.){2}(.){3}(.){10}(.){3}(.){32}(.){32}(.){8}(.){5}(.){2}(.){2}(.){3}
(.){9}(.){11}(.){128}(.){15}(.){6}",$city,$nov))
{
echo $nov[1].'|'.$nov[2].'|'.$nov[3].'|'.$nov[4].'|'.$nov[5].'|'.$nov[6].'|'.$nov[7].'|'.$nov[8].'|'
.$nov[9].'|'.$nov[10].'|'.$nov[11].'|'.$nov[12].'|'.$nov[13].'|'.$nov[14].'|'.$nov[15].'|'.$nov[16].'<br>';
}
else {echo "Ошибка";}
?>
|
| |
|
|
|
|