Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB58.6890
BTC/USD0.0000
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 08.02.2012, 18:49   #1
παφ
накидка-антиблик адидас
 
Аватар для παφ
 
Регистрация: 20.11.2010
Сообщений: 2,153
Бабло: $361580
По умолчанию Удаление строк в файле

Вообще я не кодер, думал может можно как то решить мою задачу программными средствами но не нашел ничего достойного. Суть задачи :
Есть большой файл в нем строки
текст;текст
тексттексттекст;тексттексттекст
ывпшпу2;r37goifh3c

и т.д
нужно
1. вырезать все после ";" чтобы стало
текст
тексттексттекст
r37goifh3c


2. удалить все строки, длина которых меньше 4 символов

3. удалить все строки, длина который больше 8 символов

4. удалить из оставшихся строк, строки имеющие хотя бы один русский символ

буду очень благодарен, за помощь
παφ вне форума  
Старый 08.02.2012, 18:53   #2
παφ
накидка-антиблик адидас
 
Аватар для παφ
 
Регистрация: 20.11.2010
Сообщений: 2,153
Бабло: $361580
ТС -->
автор темы ТС По умолчанию

по первому пункту, разобрался в екселе
актуальны остальные 3
παφ вне форума  
Старый 08.02.2012, 19:02   #3
Drg
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 4,100
Бабло: $611505
По умолчанию

PHP код:
<?                                                                                                                                                                           
$fp
=fopen("big.txt",'r');                                                                                                                                                    
$fp2=fopen("big2.txt",'w');                                                                                                                                                  
while(!
feof($fp))                                                                                                                                                            
{                                                                                                                                                                            
                                                                                                                                                                             
    
$str=fgets($fp);                                                                                                                                                         
    
$str=str_replace("\r","",$str);                                                                                                                                          
    
$str=str_replace("\n","",$str);                                                                                                                                          
    
$str=preg_replace("!;(.*?)$!si",'',$str);                                                                                                                                
    if ((
strlen($str)>=4)&&(strlen($str)<=8))                                                                                                                                
      if (!(
preg_match("![а-я]!si",$str)))                                                                                                                                   
        
fputs($fp2,$str."\n");                                                                                                                                               
}                                                                                                                                                                            
fclose($fp);                                                                                                                                                                 
fclose($fp2);                                                                                                                                                                
?>
big.txt большой txt файл, big2.txt запишется результат
Drg вне форума  
Старый 08.02.2012, 19:07   #4
Drg
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 4,100
Бабло: $611505
По умолчанию

Я немного запутался, нужно вырезать сначала строки?
тогда так:
PHP код:
<?
$fp
=fopen("big.txt",'r');
$fp2=fopen("big2.txt",'w');
while(!
feof($fp))
{
    
    
$str=fgets($fp);
    
$str=str_replace("\r","",$str);
    
$str=str_replace("\n","",$str);
    
$str=preg_replace("!^(.*?);!siU",'',$str);
    if ((
strlen($str)>=4)&&(strlen($str)<=8))
      if (!(
preg_match("![а-я]!si",$str)))
    
fputs($fp2,$str."\n");
}
fclose($fp);
fclose($fp2);
?>
Drg вне форума  
Старый 08.02.2012, 19:09   #5
Ower
ё
 
Аватар для Ower
 
Регистрация: 26.10.2011
Сообщений: 1,490
Бабло: $300250
По умолчанию

2 и 3 пункты тоже можно сделать в экселе: ДЛСТР()

Рядом делаешь столбик с этим значением, растягиваешь на все данные и сортируешь этот столбик с кол-вом символов (ругие столбики тоже должны отсортироваться)

И всё, удаляешь то, что не нужно
Ower вне форума  
Старый 08.02.2012, 19:12   #6
παφ
накидка-антиблик адидас
 
Аватар для παφ
 
Регистрация: 20.11.2010
Сообщений: 2,153
Бабло: $361580
ТС -->
автор темы ТС По умолчанию

Drg, четко! спасибо большое!
Ower, тож спасибо, буду знать на будущее!
παφ вне форума  
Старый 09.02.2012, 06:30   #7
sydoow
Senior Member
 
Аватар для sydoow
 
Регистрация: 26.09.2008
Сообщений: 3,918
Бабло: $488279
Отправить сообщение для sydoow с помощью ICQ Отправить сообщение для sydoow с помощью Skype™
По умолчанию

Ещё можно заюзать TextPipe и пару регулярок.
sydoow вне форума