Ecriture dans un fichier en memoire(cache)

wass Messages postés 10 Statut Membre -  
jipo Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -
bonjour ,
voici mon probleme,
tout d'abord J'utilise PERL
j'utilise html parser et html tokeparser pour le parsing d'un site,
le probleme c'est que ces deux modules utilisent des fichiers obligatoiremnt (enfin je crois)
et ce que je voudrais c'est ecrire des fichiers en memoire (cache) sans les creer physiquemnt pr des raisons de rapidité de traitemnt et car ils ne me servent à rien en plus pr plutard;
est-il possible de faire ca? sinon est ce qu'il y a un equivalent de html parser et de tokeparser pr faire le parsing en utilisant directmnt des variables qui contiennent le cntenu d'une page web ou en utilisnt le acche dirctmnt?
Merci pour votre aide
A voir également:

4 réponses

lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité 3 570
 
Salut,

Créer des fichiers en mémoire ce n'est pas possible.

En revanche tu peux stocker dans une variable tableau le fichier que tu veux traiter.
Mais en ce cas tu es limité à ta mémoire vive. Si tu as des grands fichiers je ne pense pas que tu va gagner en rapidité. En plus tu risques d'infliger une sacré correction à ta mémoire virtuelle, en bref un plantage.
Cette solution est envisageable pour des petits fichiers.

En revanche si tu peux créer de fichiers temporaires ensuite après le traitement tu n'as qu'à les supprimer.

Une autre posibilité c'est de modifier des fichiers sur place sans avoir besoin de fichiers temporaires.

lami20j
0
wass Messages postés 10 Statut Membre
 
bonjour,
au fait, mes fichiers ne sont pas très volumineux, c'est des fichiers html ou fichiers textes qui font autour de 8K chacun, et je traite un seul fichier à la fois. Ce serait quand meme penalisant pour la memoire vive?

"Une autre posibilité c'est de modifier des fichiers sur place sans avoir besoin de fichiers temporaires. " qu'est ce que tu veux dire par là stp?

Merci d'avacne pour ta réponse lami20j
0
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité 3 570
 
Salut,

c'est des fichiers html ou fichiers textes qui font autour de 8K chacun, et je traite un seul fichier à la fois. Ce serait quand meme penalisant pour la memoire vive?

Aucun souci pour des petits fichiers.

"Une autre posibilité c'est de modifier des fichiers sur place sans avoir besoin de fichiers temporaires. " qu'est ce que tu veux dire par là stp?

Voilà un exemple.
J'ai créé un fichier dans lequel délibérément j'ai fait des erreurs.
Le script corrige sur place le fichier sans créer un fichier tempoire.
En revanche dans des situations de ce genre, vaux mieux sauvegarder le fichier original
(c'est -i.orig qui le fait)
Le fichier original nombre.txt sera sauvegarder avec le nom, nombre.txt.orig .
#!/usr/bin/perl -i.orig
use warnings;use strict;

my $pair    = '2 4 6 8';
my $impair  = '1 3 5 7 9';
my $premier = '1 2 3 5 7';

while ( <> ) {
  s/(.*:)(.*)/$1$pair/    if /\bpair/;
  s/(.*:)(.*)/$1$impair/  if /impair/;
  s/(.*:)(.*)/$1$premier/ if /premier/;
  print;
}

Le fichier original.
$ cat wass.txt
nb pair    :1 2 3 5 7
nb impair  :2 4 6 8
nb premier :1 3 5 7 9

Exécution du script qui va modifier sur place le fichier
et il va sauvegarder l'original.
$ perl ccm_wass_ecriture_dans_un_fichier_en_memoire.pl wass.txt

Le résultat
$ cat wass.txt
nb pair    :2 4 6 8
nb impair  :1 3 5 7 9
nb premier :1 2 3 5 7

Le fichier original
$ cat wass.txt.orig
nb pair    :1 2 3 5 7
nb impair  :2 4 6 8
nb premier :1 3 5 7 9
lami20j
0
jipo Messages postés 1 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,
une question de neophyte: qu'es que c'est de la memoire cache et à quoi ça sert?
merci pour vos reponses.
0