Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как брать по две строчки и записывать в одну
 
 автор: Alexn99   (19.07.2006 в 23:31)   письмо автору
 
 

Есть файл1.тхт он содержит по фразе на строчку
как брать по две строки фраз из файл1.тхт и записывать в файл2.тхт в одну строку

файл1.тхт

фраза1
фраза2
фраза3
фраза4
фраза5
фраза6

файл2.тхт

фраза1 фраза2
фраза3 фраза4
фраза5 фраза6

Помогите пожалуйста :)

   
 
 автор: Ziq   (19.07.2006 в 23:45)   письмо автору
 
   для: Alexn99   (19.07.2006 в 23:31)
 

Где-то так

<?
$text 
file("fail1.txt");

for(
$i 0$i count($text); $i += 2)
{
  
$text2 .= $text[$i]." ".$text[$i+1]."\r\n";
}

$fp fopen("fail2.txt","w");
fwrite($fp$text2);
fclose($fp);
?>

   
 
 автор: Alexn99   (20.07.2006 в 11:02)   письмо автору
 
   для: Ziq   (19.07.2006 в 23:45)
 

Не работает, пишет ошибку в шестой строке
Notice: Undefined variable: text2 in ... on line 6
Notice: Undefined offset: 47 in ... on line 6

и создает в файл2.тхт не правельно

фраза1
пробел фраза2
пустая строка
фраза3
пробел фраза4
пустая строка
фраза5
пробел фраза6

...помогите пожалуйста...

   
 
 автор: valenok   (20.07.2006 в 11:12)   письмо автору
 
   для: Alexn99   (20.07.2006 в 11:02)
 


@$text2 .= $text[$i]." ".$text[$i+1]."\r\n";


Записывает оно всё правильно если файл1 правильно построен.

   
 
 автор: Trianon   (20.07.2006 в 11:14)   письмо автору
 
   для: Alexn99   (20.07.2006 в 11:02)
 

На самом деле можно проще.
<?
  $f1 
=  fopen('file1.txt''rb'); 
  
$f2 =  fopen('file2.txt''wb');

  for(
$sep ' '; !feof($f1); $sep $sep == ' ' "\r\n" ' ')
    
fputs($f2rtrim(fgets($f1), "\r\n").$sep);

  if(
$sep != ' '
    
fputs($sep);

  
fclose($f2);
  
fclose($f1);
?>

   
 
 автор: Alexn99   (20.07.2006 в 11:45)   письмо автору
 
   для: Trianon   (20.07.2006 в 11:14)
 

2Trianon отлично работает, но выдает такое сообщение
Warning: Wrong parameter count for fputs() in ... on line 9

Если не сложно, помоги пожалуйста с ситуацией когда надо группировать большее число строк в одну, в идеале присваиваем пременной число строк для группировки и твой скриптик обращается к этой пременной...

я не ленив, я просто еще не все знаю :)

   
 
 автор: valenok   (20.07.2006 в 11:50)   письмо автору
 
   для: Alexn99   (20.07.2006 в 11:45)
 

<? 
$text 
file("fail1.txt"); 
$lines_to_line=15// 15 строк в одну. Вообщем твоя переменная

for($i 0$i count($text); $i += $lines_to_line

$counter=$i;
   for(
$counter;$counter<$lines_to_line;$counter++){
      
$text2 .= $text[$counter];
   }
$tex2.="\r\n";


$fp fopen("fail2.txt","w+"); 
fwrite($fp$text2); 
fclose($fp); 
?>

   
 
 автор: Alexn99   (20.07.2006 в 13:35)   письмо автору
 
   для: valenok   (20.07.2006 в 11:50)
 

не работает...

   
 
 автор: Trianon   (20.07.2006 в 12:56)   письмо автору
 
   для: Alexn99   (20.07.2006 в 11:45)
 

И что это у Вас за fputs такой странный....

<?
  $f1 
=  fopen('file1.txt''rb');
  
$f2 =  fopen('file2.txt''wb');

  for(
$idx 0; !feof($f1); )
  {
    
$sep = (++$idx 5) ? ' '"\r\n";
    
$out rtrim(fgets($f1), "\r\n").$sep;
    
fputs($f2$outstrlen($out));
  }

  if(
$sep == ' ')
    
fputs("\r\n");

  
fclose($f2);
  
fclose($f1);
?>

   
 
 автор: Alexn99   (20.07.2006 в 13:42)   письмо автору
 
   для: Trianon   (20.07.2006 в 12:56)
 

2Trianon Все правельно создает, спасибо, но осталось сообщение
Warning: Wrong parameter count for fputs() in ... on line 13

я попробывал в файл1.тхт добавить фразу-строку ручками, получилось старые фразы-строки смеслитились на одну строку вниз, а новая фраза на первой строке, сохранил и больше ошибку не выдавало, но как только эту фразу удалил, вернул так сказать в исходное содержение, то предупреждение опять появилось

в чем проблемка?

   
 
 автор: Trianon   (20.07.2006 в 13:50)   письмо автору
 
   для: Alexn99   (20.07.2006 в 13:42)
 

показывайте Ваш текст программы.

   
 
 автор: Alexn99   (20.07.2006 в 14:05)   письмо автору
 
   для: Trianon   (20.07.2006 в 13:50)
 

вот прикрепил к сообщению файл1.тхт с которым выдает Warning: Wrong parameter count for fputs() in ... on line 13

   
 
 автор: axxil   (20.07.2006 в 14:21)   письмо автору
 
   для: Alexn99   (20.07.2006 в 14:05)
 


<? 
 
....
  if(
$sep == ' '
    
fwrite($f2,"\r\n"); 

?> 

   
 
 автор: Alexn99   (20.07.2006 в 16:42)   письмо автору
 
   для: axxil   (20.07.2006 в 14:21)
 

Спасибо, заменив работает...

   
 
 автор: Trianon   (20.07.2006 в 14:43)   письмо автору
 
   для: Alexn99   (20.07.2006 в 14:05)
 

Прошу прощения... Сам ошибся. Вот так:

<? 
  $f1 
=  fopen('file1.txt''rb'); 
  
$f2 =  fopen('file2.txt''wb'); 

  for(
$idx 0; !feof($f1); ) 
  { 
    
$sep = (++$idx 5) ? ' '"\r\n"
    
fputs($f2rtrim(fgets($f1), "\r\n").$sep); 
  } 

  if(
$sep == ' '
    
fputs($f2"\r\n"); 

  
fclose($f2); 
  
fclose($f1); 
?> 

   
 
 автор: Alexn99   (20.07.2006 в 16:43)   письмо автору
 
   для: Trianon   (20.07.2006 в 14:43)
 

Спасибо, работает!

:)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования