|
|
|
| Ответ 006 на задачу N 7.
С условиями задачи можно ознакомится по ссылке.
<?php
//mixture.php
//определяем имя файла с данными
$file_name = "file.txt";
//считываем его в массив
$array = file ($file_name);
//избавляемся от лишних символов пробелов
foreach ($array as $key => $value)
{
$array[$key] = trim ($value);
}
//перемешиваем
shuffle ($array);
//записываем обратно в файл
$fp = fopen ($file_name, "w");
fwrite ($fp, implode ("\n", $array));
fclose ($fp);
?>
|
<?php
//ordernum.php
//определяем имя файла с данными
$file_name = "file.txt";
//считываем его в массив
$array = file ($file_name);
//избавляемся от лишних символов пробелов
foreach ($array as $key => $value)
{
$array[$key] = trim ($value);
}
//сортируем лексикографически
natcasesort ($array);
//записываем обратно в файл
$fp = fopen ($file_name, "w");
fwrite ($fp, implode ("\n", $array));
fclose ($fp);
?>
|
<?php
//orderalph.php
//определяем имя файла с данными
$file_name = "file.txt";
//определяем символ, который разделяет номер и текст
$char = " ";
//считываем файл в массив
$array = file ($file_name);
//проганяем этот массив
foreach ($array as $value)
{
//разбираем каждую строку, по символу $char и записываем в массив $text
$text = explode ($char, trim ($value));
//записываем в массив $array_change, с ключем - номером, строку с вырезанным номером
$array_change[$text[0]] = substr (trim ($value), strlen ($text[0]));
}
//сортируем по алфавиту
natcasesort ($array_change);
$str = "";
//прогоняем массив $array_change и записываем все в $str
foreach ($array_change as $key => $value)
{
$str .= $key . $char . $value . "\n";
}
//записываем обратно в файл
$fp = fopen ($file_name, "w");
fwrite ($fp, substr ($str, 0, -1));
fclose ($fp);
?>
|
http://www.softtime.ru/info/task.php?id_article=77 | |
|
|
|
|
|
|
|
для: SoftTime
(18.02.2006 в 00:50)
| | Мне последний скрипт показался несколько громоздким на фоне других скриптов (хотя это наверное уже субъективно :). Корректно обрабатывается ситуация с отсутствием перевода строки в конце файла. Используется функция shuffle(), а не изобретается собственный способ сортировки - это тоже хорошо. Сама сортировка проходит тоже корректно и скрипты работают просто отлично. Правда один минус нашёл - orderalph.php добавляет один лишний пробел между цифрой и названием языка программирования, нарушая формат файла. | |
|
|
|
|
|
|
|
для: cheops
(20.02.2006 в 00:33)
| | >Правда один минус нашёл - orderalph.php добавляет один лишний пробел между цифрой и названием языка программирования, нарушая формат файла.
Да, это я просмотрел. Браузер лишние пробелы вырезает, а в файл глянуть я поленился. :))
Вот исправленый вариант:
<?php
//orderalph.php
//определяем имя файла с данными
$file_name = "file.txt";
//определяем символ, который разделяет номер и текст
$char = " ";
//считываем файл в массив
$array = file ($file_name);
//проганяем этот массив
foreach ($array as $value)
{
//разбираем каждую строку, по символу $char и записываем в массив $text
$text = explode ($char, trim ($value));
//записываем в массив $array_change, с ключем - номером, строку с вырезанным номером
$array_change[$text[0]] = substr (trim ($value), strlen ($text[0]) + 1);
}
//сортируем по алфавиту
natcasesort ($array_change);
$str = "";
//прогоняем массив $array_change и записываем все в $str
foreach ($array_change as $key => $value)
{
$str .= $key . $char . $value . "\n";
}
//записываем обратно в файл
$fp = fopen ($file_name, "w");
fwrite ($fp, substr ($str, 0, -1));
fclose ($fp);
?>
|
Как говорится: "Первый блин комом". Дальше буду тестировать лучше. :) | |
|
|
|