|
|
|
(Perl) Усложнение обработки файлов
|
|||
|---|---|---|---|
|
#18+
Приветствую вас, Увожаемые коллеги, Во время обработки файлов у мебя возникла следующая проблемма: Есть файл аутпута в него я печатаю скажем так сгенерированный текст нпример вот так: 1 <xml> 2 <head> 3 4 </head> 5 <body> 7 <info1/>........<info99999/> 8 </body> 9 </xml> По мере печати я анализирую теги <info> и собираю нужную мне информацию. И вот в конце возникает моя проблема мне надo сгенерировать "голову" исползуя собраную инфу. Скажите есть ли возможность в Perl при печати в фаийл, поднятся с конца файла (в моем случае) на линию 3 и впечатать туда нужную мне информацию, не повредя тем самым уже сгенерированному содержимому? Заранее всем вам благодарен за помошь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2005, 14:35 |
|
||
|
(Perl) Усложнение обработки файлов
|
|||
|---|---|---|---|
|
#18+
seek truncate ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2005, 15:20 |
|
||
|
(Perl) Усложнение обработки файлов
|
|||
|---|---|---|---|
|
#18+
Viktor BartelСкажите есть ли возможность в Perl при печати в фаийл, поднятся с конца файла (в моем случае) на линию 3 и впечатать туда нужную мне информацию, не повредя тем самым уже сгенерированному содержимому? Не проще ли содержимое вывода накапливать в переменной, после чего сгенерировать и вывести "голову", а уже потом дописать в файл требуемый вывод? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2005, 15:51 |
|
||
|
(Perl) Усложнение обработки файлов
|
|||
|---|---|---|---|
|
#18+
seek - можно только если предварительно оставил в заголовке необходимое место: в режиме insert оно не работает Я смотрю, размер файлика может дойти до мегабайта... ------------------ - А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2005, 15:58 |
|
||
|
(Perl) Усложнение обработки файлов
|
|||
|---|---|---|---|
|
#18+
В том то и проблемма что размер файла варьируеться от 10 мб и выше, и размер headera не возможно предвидеть заранее. Я слышал что в Си это мозжно сделать, используя API для работы с файлами. Но все равно можно по подробнее о seek и insert, примерчик если у кого есть, может пролить свет на некоторые детали :), спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2005, 16:10 |
|
||
|
(Perl) Усложнение обработки файлов
|
|||
|---|---|---|---|
|
#18+
Простите о seek и truncate :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2005, 16:12 |
|
||
|
(Perl) Усложнение обработки файлов
|
|||
|---|---|---|---|
|
#18+
создаёшь tempfile, льёшь туда 10 метров, создаёшь файл назначения, пишешь туда заголовок и перекачивашь налитое в tempfile (вернее, из темпфайла в файл назначения). Что у тебя там? Перл? Вот и читай документацию на перл по функциям для работы с файлами. ------------------ - А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2005, 16:19 |
|
||
|
(Perl) Усложнение обработки файлов
|
|||
|---|---|---|---|
|
#18+
Ок я так и представлял себе эту операцию. Вот еще скажите а есть ли возможность склеить 2 файла не используя функцию print <ДЕСКРИПТОР> строка_файла. Можно ли как нить побыстрее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2005, 16:26 |
|
||
|
(Perl) Усложнение обработки файлов
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2005, 16:33 |
|
||
|
(Perl) Усложнение обработки файлов
|
|||
|---|---|---|---|
|
#18+
Николай и это должно оптимально быстро работать даже с файлами больших размеров? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2005, 16:38 |
|
||
|
(Perl) Усложнение обработки файлов
|
|||
|---|---|---|---|
|
#18+
меня смущает join, наверно лучше будет сразу при формирование массива в конец каждого эллемента добавлять \n (если это конечно требуется). а в обще попробуйте с Join и без него измерить производительность с помощью модуля Benchmark. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2005, 16:42 |
|
||
|
(Perl) Усложнение обработки файлов
|
|||
|---|---|---|---|
|
#18+
Скажите Николай а что вы думаете по этому поводу: Использование модуля File-Data-1.12 Думаете будет медленее работать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2005, 18:08 |
|
||
|
(Perl) Усложнение обработки файлов
|
|||
|---|---|---|---|
|
#18+
Viktor BartelОк я так и представлял себе эту операцию. Вот еще скажите а есть ли возможность склеить 2 файла не используя функцию print <ДЕСКРИПТОР> строка_файла. Можно ли как нить побыстрее? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Viktor Bartel Использование модуля File-Data-1.12 Думаете будет медленее работать? Ахез, но судя по исходнику там сначала проводится чтение всего файла в память. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2005, 18:46 |
|
||
|
(Perl) Усложнение обработки файлов
|
|||
|---|---|---|---|
|
#18+
Ок вижу спасибо большое за алгоритм. В моем случае лучше конечно так чем весь файл в память копировать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2005, 18:53 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=33095854&tid=1478165]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
141ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 430ms |

| 0 / 0 |
