LINUX.ORG.RU

Perl и работа с файлами! HELP!!!


0

0

У меня есть база из ... скажем 1000 записей Мне нужно ... скажем 245 заменить на другую Я это могу сделать считав все поменяв и полностью перезаписать файл. но это очень медленно!

Как можно перезаписывать по ходу чтения конкретно 1 запись

пробовал с seek разобраться но что-то залез я дебри дайти примерчик плз.

спасиб

anonymous

Проще всего связать файл с хешем.
Далее все изменения в хеше автоматически и быстро появляются в файле.

Use DBM;
...


anonymous
()
Ответ на: комментарий от anonymous

а пример можно?

или может что попроще используя только open("file") и массивы ... мот отслеживая индекс....

anonymous
()

> пробовал с seek разобраться но что-то залез я дебри дайти примерчик плз.

А что непонятного с seek?

perldoc -f seek читали?

DKorolkov
()
Ответ на: комментарий от anonymous

 SDBM_File  и Fcntl установлены в каждой системе по умолчанию.
 У SDBM_File  было ограничение на длину строки до 4 кбайт и
 количество строк около 18 тысяч (На АктивеПерл под Вин98)


-----------------------------------------------
 use Fcntl;   # For O_RDWR, O_CREAT, etc.
 use SDBM_File;

 tie(%h, 'SDBM_File', 'filename', O_RDWR|O_CREAT, 0666)
   or die "Couldn't tie SDBM file 'filename': $!; aborting";

 # Now read and change the hash
 $h{newkey} = newvalue;
 print $h{oldkey}; 
 ...

 untie %h;
-------------------------------------------------

Если ограничения не устраивают, то установи DB_File модуль  и пиши:

use DB_File ;

.....

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.