Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Roman Yu. Panichkin                  2:5020/400     02 Nov 2000  17:08:15
 To : Yaroslav Kulikov
 Subject : Re: Файлы
 -------------------------------------------------------------------------------- 
 
 
  Hello Yaroslav !
 
 >>>>> At Thu, 02 Nov 2000 11:18:11 +0300 
 >>>>> "YK" == Yaroslav Kulikov writes :
 
 YK> Hарод, подскажите мне _наибыстрейший_  способ чтения определенной строки
 YK> (известен номер нужной строки) текстового файла. При всем при этом номер
 YK> может достигать и 1000. Именно поэтому нужен наибыстрейший способ.
 
 Буквально вчера решал такую задачу. Только файл содержал >5*10^6 сторк. Так
 что совет будет немножко не в тему. Hо может кому понадобится.
 
 Использовал для этого BerkeleyDB и его тип файла Recno. 
 Вот код который выводит первую и миллионную запись.
 
 --
 #! /usr/bin/perl -w
 
 use strict;
 use BerkeleyDB;
 
 my $srcfilename = "shb/data.txt";
 my $dbfilename = "shb/data.db";
 
 my @h;
 tie @h, 'BerkeleyDB::Recno', 
         -Filename => $dbfilename,
         -Flags => DB_CREATE,
         -Source   => $srcfilename
   or die "Cannont create $dbfilename: $!\n";
 
 my $elements = scalar @h;
 
 print "first record is h[0]\n"
 print "1000000d record is h[999999]\n";
 
 untie @h;
 --
 
   Первый запуск долгий - пока создается файл data.db. Зато потом быстро 
 записи вытаскивает. Размер файла data.db чуть больше исходного. После
 создания data.db файл data.txt можно удалить - вся информация содержится
 в data.db.
 
  Чуть не забыл. Строчка "my $elements = scalar @h;" нужна - иначе переноса
 информации не происходит. Скорее всего нужно что-то добавить в -Flags, чтобы 
 отключить laze-mode. Hо искать было некогда.
 
 -- 
   Best regards, -- Roman.
 
 If the future isn't what it used to be, does that mean that the past
 is subject to change in times to come?
 --- ifmail v.2.15dev5
  * Origin: Alvis Plus Trade Company (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Файлы   Yaroslav Kulikov   02 Nov 2000 12:18:11 
 Файлы   Maxim Y. Zinyakov   02 Nov 2000 15:44:58 
 Файлы   Leonid Subbotin   03 Nov 2000 02:25:12 
 Re: Файлы   Roman Yu. Panichkin   02 Nov 2000 17:08:15 
 Re: Файлы   Alexander Babanov   02 Nov 2000 08:19:01 
 Re^2: Файлы   Yaroslav Kulikov   02 Nov 2000 23:41:34 
 Re^2: Файлы   Alexander Babanov   03 Nov 2000 00:23:04 
 Re: Файлы   Andrew Perevodchik   02 Nov 2000 18:12:00 
 Re: Файлы   Ilya Obshadko   03 Nov 2000 01:25:50 
 Re: Файлы   Lokhin Victor   04 Nov 2000 14:50:38 
 Re^2: Файлы   Yaroslav Kulikov   05 Nov 2000 16:05:31 
Архивное /ru.perl/135927304828c.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional