Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.03.2013, 02:14   #1
record222
Форумчанин
 
Регистрация: 23.09.2009
Сообщений: 127
По умолчанию Рандомная разбивка txt файла

Доброе время суток, друзья!

Есть файл весом 40мб.
Нужно разбить на 30 файлов, рандомно от 10-15к строк.
Пытался это реализовать так:

PHP код:
<?php
 ini_set
('display_errors'1);
ini_set("memory_limit""512M");
  
error_reporting(E_ALL);
$f 'text.txt';
$fc=file($f);                          
$fn=count($fc); 
$m 0
$z 0;
while (
$z<=30) {

$f2 'text'.$z.'.txt';
$rand rand(1000015000);
for(
$i=$m$i-$rand<$rand$i++)

{
        
$fp=fopen($f2'a+');
        
fwrite($fp$fc[$i]);

$m $rand;
$z++;
}
fclose($fp);
fclose($fc);
?>
Но увы файлы разбиваются, как захотят...
То 20к, то 8к, 14к...
Подскажите как оно должно быть, спасибо
record222 вне форума Ответить с цитированием
Старый 13.03.2013, 06:40   #2
Mortimoro
Форумчанин
 
Регистрация: 03.12.2010
Сообщений: 334
По умолчанию

как оно должно быть, эт тебе виднее...
1. надо разбить на куски по 10-15 килобайт или тысяч строк?
2. как быть, если в исходном файле закончились строки до того, как мы получим 30 итоговых файлов?
3. как быть, если мы уже собрали 30 итоговых файлов, а в исходном еще остались строки, которые мы не определили ни в один итоговый файл?
4. в чем тайный смысл этой строки?
PHP код:
$fn=count($fc); 
PS1: давать переменным имена функций ($rand) - дурной тон.
PS2: давать переменным непонятные однотипные обозначения ($fc, $fn, $f2, $fp) - дурной тон, так как усложняется чтение.
PS3: открывать/записывать файл в цикле 15000 раз - это уже не знаю как назвать... неразумно, как минимум.

Последний раз редактировалось Mortimoro; 13.03.2013 в 06:50.
Mortimoro вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разбивка файла на части по значениям Bzik666 Microsoft Office Excel 10 10.12.2012 13:26
Как скопировать текст с файла 1.txt и записать в 2.txt Kasper1 Общие вопросы по Java, Java SE, Kotlin 1 14.12.2010 05:56
label рандомная смена Zibiv Помощь студентам 9 27.05.2010 11:49