Kona-chan
09.01.2011 11:27 Mendoza-desktop
Простой вопрос. Есть файл с содержимым:
a
b
c
d
e
f
Нужно получить файл с содержимым:
ad
be
cf
Как такое реализовать, например?
мопед не твой?
К сожалению, мой.
на VBA пишешь?
Мне просто файлик распарсить надо -_-
бери ручку с бумажкой и парсь
Более сотни строчек, не-не-не, сам парсь ручкой на бумажке.
если у меня возникнет такая задача, то я сначала разберусь, что у меня есть помимо ручки с бумажкой
Давай уже от абстракций перейдем к конкретике.
на чем программу пишешь блядь?
Да это не для программы, блядь.
ну тогда считываешь все шесть своих строчек и прибавляешь 1 к 4, 2 к 5 и 3 к 6
(-_\\
Как?
зависит от платформы
Cygwin есть, шпарь на баше.
там есть утилита paste, кстати, но я так и не осилил ее. Она таким занимается
открой его в екселе как обычный фаел, и экселем же распарсь, потом схорони как обычный файл с пустым разделителем столбцов ... профит
Хорошо, а как в экселе это делать?
Извращенец.
да ты совсем нуб. Открой в блокноте, Ctrl+A, ctrl+C, открой эксель, Ctrl+V
.\_/.
Кажется, понял. Щас попробую. И все-таки хотелось бы более элегантного решения.
ты хочешь чтобы совсем автоматизировано было? Пиши в том же экселе на vba, там должно быть чтение файлов.
у тебя всегда ровно шесть строк?
1. R cannot into VBA.
2. У меня calc.
calc не умеет такой копипаст, да
→ #thzsi/5
лол, это тебе надо, а не мне
Ладно, ладно, в общем, файл у меня дохуя большой. Было б шесть строк — ручками бы сделал.
файл очень большой? В оперативную память целиком загрузить можно?
Можно.
Слушай, кажется, paste — это оно. Спасибо!
paste для двух файлов
Как бы один файл разбить на два — не очень большая проблема. Не очень элегантно, зато практично.
тогда пеши праграму. В ней создай массив из строк файла. Найди длину массива, подели на джва. Затем в цикле от нуля до половины длины массива, бери строку под номером счетчика цикла, еще бери строку под номером счетчик цикла + пол-длины массива, конкатенируй их и пихай в поток вывода
Ага, ага, ща напихаю тут, будет в лучшем виде. Ты няша ^_^
я тридцать комментариев вытаскивал из тебя четкое ТЗ
6^^"
открываешь файл в двух вэкземплярах. В одно м делаешь fseek до позиции d. ПОследовательно читаешь из обоих файлов пока в этом втором не будет достигнут конец. записываешь палучаемые результаты в выходной файл, склеивая их
Вариант, в принципе. Спасибо.
Каким-то извратом пахнет.
один вопрос — а как сделать fseek до позиции d?
конкатенация на месте, без дополнительной памяти
это самая интересная, творческая часть
нужно сначала узнать количество строчек в файле — прочитать его целиком и закрыть. А потом во втором файле прочитать до половины строчек и только тогда стартовать тот алгоритм
и все это очень желательно делать с буферизацией, чтобы не наткнуться на чудесный 12309, аналог которого также портирован под виндовс
совсем ебанулась
Што
ещё не сделал?
я правильно понимаю, тебе надо то что после середины приклеить к тому, что до середины? или просто склеить каждые 6 строк?