
Contrôler les caractères au fur et à mesure qu'ils arrivent serait plus élégant (mais il faut quand même passer par un buffer, sinon les accès disque par caractère, ça suxx)
Tu peux aussi faire un buffer avec un décalage (genre de FIFO) AZERT ZERTY ERTYU ton buffer faisant la longueur de la chaine que tu recherches.
(c'est peut-être le plus joli en fait).
LeChat a écrit
Contrôler les caractères au fur et à mesure qu'ils arrivent serait plus élégant (mais il faut quand même passer par un buffer, sinon les accès disque par caractère, ça suxx)
Tu peux aussi faire un buffer avec un décalage (genre de FIFO) AZERT ZERTY ERTYU ton buffer faisant la longueur de la chaine que tu recherches.
(c'est peut-être le plus joli en fait).
Kane a écritLeChat a écrit
Contrôler les caractères au fur et à mesure qu'ils arrivent serait plus élégant (mais il faut quand même passer par un buffer, sinon les accès disque par caractère, ça suxx)
Tu peux aussi faire un buffer avec un décalage (genre de FIFO) AZERT ZERTY ERTYU ton buffer faisant la longueur de la chaine que tu recherches.
(c'est peut-être le plus joli en fait).
Heu... non, les deux solutions que tu proposent sous-entendent de lire caractère par caractère... ce qui n'est PAS performant. Du tout.
hahaha, mais justement ! le problème se pose lorsque la chaine est entre deux lecture du buffer !
Kane a écrit
hahaha, mais justement ! le problème se pose lorsque la chaine est entre deux lecture du buffer !
Voilà pourquoi j'ai arrêté la prog (ça et le COBOL, et l'AS/400, et...)
JiHeM a écrit
Voilà pourquoi j'ai arrêté la prog (ça et le COBOL, et l'AS/400, et...)
Ah mais la pure résolution de problèmes j'aime bien, en Prolog par exemple, c'est un des rares domaines qui me passionnait. Mais quand le problème c'est "informatise nous toute la gestion des commandes et des livraisons en 3 mois avec tel langage pourri", non merci :)
Je connais rien au php. le $fp c'est ton pointeur de fichier?
Si tu le décrémentes de x(=longueur de la chaine recherchée - 1) avant de récupérer le bloc suivant, tu gardes les derniers octets du bloc précédent au début du suivant, comme ça tu risques pas de rater ta chaîne.
ah ouais mais l'informatique de 1980 je dis non, l'homme est amené à s'élever et à utiliser des fonctions toutes faites pour ce genre de problèmes :)
Cyp a écrit
ah ouais mais l'informatique de 1980 je dis non, l'homme est amené à s'élever et à utiliser des fonctions toutes faites pour ce genre de problèmes :)
Moi je dis Java / C# / Ruby rulez. Mais jle dis pas trop fort parce que ca fait très geek de défendre un langage.
Dableuf a écrit
Je connais rien au php. le $fp c'est ton pointeur de fichier?
Si tu le décrémentes de x(=longueur de la chaine recherchée - 1) avant de récupérer le bloc suivant, tu gardes les derniers octets du bloc précédent au début du suivant, comme ça tu risques pas de rater ta chaîne.
$fp = fopen( www.exemple.com/fichier_a_lire, 'r', false, $context);
if (!$fp) {
echo "$errstr ($errno)
\n";
} else {
$end="Chaine de remplacement";
while (!feof($fp)) {
$data= fgets($fp, 10000);
$data=str_replace("Chaine a remplacer","Chaine de remplacement",$data);
echo substr($data,18);
$end= substr($data,-18);
}
}
fclose($fp);
}Cyp a écrit
Moi je dis Java / C# / Ruby rulez. Mais jle dis pas trop fort parce que ca fait très geek de défendre un langage.
Brainfuck ou Ook!, ça c'est vraiment geek.
JiHeM a écrit
Brainfuck ou Ook!, ça c'est vraiment geek.
Pas encore, mais c'est gentil de penser à moi.
Kane a écrit
(putain, j'ai vachement perdu en prog, a force de ne plus faire que des scripts)
Dableuf a écrit
Y'a pas d'équivalent de fseek en php?
fseek ne peut pas être utilisé sur les pointeurs retournés par fopen s'ils sont au format HTTP ou FTP.
Sinon, le Perl ça roxx pas mal aussi (c'est du compilé à l'exécution). Il y a dans ce langage des fonctionnalités d'une puissance assez sympathique.
(genre des tables de hachage et des chargements de données dans des tableaux...)
![]()
Kane a écritDableuf a écrit
Y'a pas d'équivalent de fseek en php?
fseek ne peut pas être utilisé sur les pointeurs retournés par fopen s'ils sont au format HTTP ou FTP.
Et j'ouvre un flux HTTP.
JiHeM a écrit
Ah mais la pure résolution de problèmes j'aime bien, en Prolog par exemple
Non je suis sérieux :)
Après c'est sûr que j'ai fait que des petits problèmes du genre optimisation des chutes de bois dans une scierie ou du trajet d'un voyageur de commerce ou encore le classique zèbre, jamais codé un vrai système expert décisionnel.
JiHeM a écrit
Non je suis sérieux :)
Après c'est sûr que j'ai fait que des petits problèmes du genre optimisation des chutes de bois dans une scierie ou du trajet d'un voyageur de commerce ou encore le classique zèbre, jamais codé un vrai système expert décisionnel.
Vous devez être identifié pour participer à ce topic.
Satan m'habite