| imho.ws |
![]() |
|
|
|
# 1 |
|
Guest
Сообщения: n/a
|
Есть данные файл, файл большой текстовый 70 метров.
Задача Данные идут так: 1. строка. А, Б, В, Г, Д, Ж 2. строка. А, Б, В, Г, Д, Ж 3. строка. А, Б, В, Г, Д, Ж и так 700 тыс. строк. а надо сделать в такой последовательности : 1. строка Б, Г, В, Д 2. строка Б, Г, В, Д 3. строка Б, Г, В, Д а А и Ж вообще удалить, даные везде разные поэтому просто найти и заменить на мой взгляд нельзя... понимаю что задача наверно тривиальна, надеюсь что кто-нибудь даст дельный совет что делать... заранее Спасибо! |
|
|
# 3 |
|
::VIP::
Звезда первого сезона Молчун-2004 Регистрация: 24.08.2002
Сообщения: 1 575
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Нужно обязательно прогу написать? А то можно просто открыть в любом текстовом редакторе и воспользоваться поиском с заменой.
З.Ы. Можно в принципе и прогу, основная проблема здесь заключается только в том, что файл слишком велик.
__________________
Действовать надо тупо и это лучшее доказательство нашей чистоты и силы! |
|
|
|
|
# 4 | |
|
::VIP::
Регистрация: 18.01.2002
Адрес: Moscow
Сообщения: 1 919
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
А топ лучше обсуждать в "Программирование", а не "Программы" - перенес.
__________________
Бороться и искать, найти и перепрятать :-) |
|
|
|
|
|
# 8 |
|
::VIP::
Регистрация: 17.12.2002
Адрес: Q-ata, Israel
Сообщения: 310
![]() ![]() ![]() ![]() ![]() |
действительно легче написать самому
Код:
#include <stdio.h>
#define MAX_LEN 100
void main()
{
FILE *f_inp = fopen("c:\\file1.txt","rt");
FILE *f_out = fopen("c:\\file2.txt","wt");
char s1[MAX_LEN+1], s2[MAX_LEN+1];
int cycle_count = 0;
if (f_inp!=0 && f_out!=0)
{
while( !feof(f_inp) )
{
switch (cycle_count)
{
case 0: // 'A' - ignore
fgets(s1,MAX_LEN,f_inp);
break;
case 1: // 'B' - copy
fgets(s1,MAX_LEN,f_inp);
fputs(s1,f_out);
break;
case 2: // 'V' - read to S2
fgets(s2,MAX_LEN,f_inp);
break;
case 3: // 'G' - copy + write S2
fgets(s1,MAX_LEN,f_inp);
fputs(s1,f_out);
fputs(s2,f_out);
break;
case 4: // 'D' - copy
fgets(s1,MAX_LEN,f_inp);
fputs(s1,f_out);
break;
case 5: // 'E' - ignore
break;
default:
// ???
break;
}
cycle_count = (cycle_count+1)%6;
}
}
fcloseall();
|
|
|
|
|
# 10 |
|
Guest
Сообщения: n/a
|
а вот на перле то же самое на Перле
$path="C:/"; open (file, $path."file.txt"); my @Report1 = <file>; close (file); chomp(@Report1); open (file, ">".$path."otchot.txt"); foreach my $item1 ( @indata1 ) { my @array1=split(/,/,$item1); print file, @array1[0]," ",@array1[1]," ",@array1[3]," ",@array1[4]," ",@array1[5]," ",@array1[6],"\n"; } close (file); Последний раз редактировалось MTop; 15.12.2003 в 13:15. |
|
|
# 11 |
|
Junior Member
Регистрация: 17.12.2002
Адрес: [EST], Tallinn
Сообщения: 120
![]() |
Эх, если б можно было всё это обработать селектом... replace(source_string, search_what, replace_with) тебе бы помог...
__________________
"я не волшебник - я только учусь..." (c) ...а зовут меня Олег... |
|
|