je souhaite que le reader de la dernière ligne lise la ligne n°10000,
celle sur laquelle il était positionné avant l'appel de la foncion
MyFunction.
Comme il n'existe pas de fonction Clone() pour cette classe
StreamReader, je ne vois pas comment éviter de lire le texte depuis le
tout début.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Ambassadeur Kosh
re
ça fait déja ce que tu veux. le passage par valeur n'a pas de sens. ou alors je n'ai rien compris à ta question.
public void f(Stream stream) { int i = stream.ReadByte() ; }
// stream.Position == 0 stream.ReadByte() ;
// stream.Position == 1 f(stream) ;
// et la... //stream.Position == 2 stream.ReadByte() ;
//stream.Position == 3
c'est pas ce que tu voulais ?
si c'est une copie dont tu as besoin, tu as Peek pour lire un byte en avance. sinon, une idée, c'est de remettre Position du baseStream à la valeur ou elle était en entrant. ainsi la fonction rend le stream dans l'etat ou il etait en entrant
tu fais de l'analyse syntaxique ?
re
ça fait déja ce que tu veux.
le passage par valeur n'a pas de sens.
ou alors je n'ai rien compris à ta question.
public void f(Stream stream)
{
int i = stream.ReadByte() ;
}
// stream.Position == 0
stream.ReadByte() ;
// stream.Position == 1
f(stream) ;
// et la...
//stream.Position == 2
stream.ReadByte() ;
//stream.Position == 3
c'est pas ce que tu voulais ?
si c'est une copie dont tu as besoin, tu as Peek pour lire un byte en
avance.
sinon, une idée, c'est de remettre Position du baseStream à la valeur ou
elle était en entrant.
ainsi la fonction rend le stream dans l'etat ou il etait en entrant
ça fait déja ce que tu veux. le passage par valeur n'a pas de sens. ou alors je n'ai rien compris à ta question.
public void f(Stream stream) { int i = stream.ReadByte() ; }
// stream.Position == 0 stream.ReadByte() ;
// stream.Position == 1 f(stream) ;
// et la... //stream.Position == 2 stream.ReadByte() ;
//stream.Position == 3
c'est pas ce que tu voulais ?
si c'est une copie dont tu as besoin, tu as Peek pour lire un byte en avance. sinon, une idée, c'est de remettre Position du baseStream à la valeur ou elle était en entrant. ainsi la fonction rend le stream dans l'etat ou il etait en entrant
tu fais de l'analyse syntaxique ?
Boris Sargos
En fait, tu parles de Stream et sa position. Moi je parle de StreamReader. On ne peut pas stocker la position d'un StreamReader. C'est pour ça que je voulais utiliser le passage par valeur. En gros, ça revient à faire une copie du contenu de l'objet (et non pas du pointeur). Ce qui est impossible en C# si l'objet ne possède pas la méthode Clone(). C'est le truc qui me gêne le plus en C#: travailler sur de pointeurs sans que ceux-ci soient manipulables comme tels.
Peut-être que la piste que tu me donnes (BaseStrem.Position) va marcher. Je vais m'y frotter tout de suite.
Oui, je fais de l'analyse syntaxique de manière temporaire sur un type de page HTML contenant des données que je veux récupérer automatiquement. C'est assez classique en somme.
Merci pour tes tuyaux, à + Boris.
En fait, tu parles de Stream et sa position. Moi je parle de
StreamReader. On ne peut pas stocker la position d'un StreamReader.
C'est pour ça que je voulais utiliser le passage par valeur. En gros, ça
revient à faire une copie du contenu de l'objet (et non pas du
pointeur). Ce qui est impossible en C# si l'objet ne possède pas la
méthode Clone(). C'est le truc qui me gêne le plus en C#: travailler sur
de pointeurs sans que ceux-ci soient manipulables comme tels.
Peut-être que la piste que tu me donnes (BaseStrem.Position) va marcher.
Je vais m'y frotter tout de suite.
Oui, je fais de l'analyse syntaxique de manière temporaire sur un type
de page HTML contenant des données que je veux récupérer
automatiquement. C'est assez classique en somme.
En fait, tu parles de Stream et sa position. Moi je parle de StreamReader. On ne peut pas stocker la position d'un StreamReader. C'est pour ça que je voulais utiliser le passage par valeur. En gros, ça revient à faire une copie du contenu de l'objet (et non pas du pointeur). Ce qui est impossible en C# si l'objet ne possède pas la méthode Clone(). C'est le truc qui me gêne le plus en C#: travailler sur de pointeurs sans que ceux-ci soient manipulables comme tels.
Peut-être que la piste que tu me donnes (BaseStrem.Position) va marcher. Je vais m'y frotter tout de suite.
Oui, je fais de l'analyse syntaxique de manière temporaire sur un type de page HTML contenant des données que je veux récupérer automatiquement. C'est assez classique en somme.
Merci pour tes tuyaux, à + Boris.
Ambassadeur Kosh
> En fait, tu parles de Stream et sa position. Moi je parle de StreamReader.
StreamReader possedant un BaseStream, j'ai rangé les deux dans le meme sac.
C'est pour ça que je voulais utiliser le passage par valeur.
abandonne cette idée
ouvre autant de fois le Stream que tu veux à la position. ou alors, lit le dans un byte[], et monte autant de Stream sur ce byte [] que tu as besoin, le Stream devenant un simple curseur... ce qui revient au meme mais t'affranchit du File
Peut-être que la piste que tu me donnes (BaseStrem.Position) va marcher. Je vais m'y frotter tout de suite. Oui, je fais de l'analyse syntaxique de manière temporaire sur un type de page HTML contenant des données que je veux récupérer automatiquement. C'est assez classique en somme.
je m'en doutais un peu. bon normallement, tu as juste besoin de peek. le html se décide trés bien avec un caractere d'avance. avec un automate, tu vas pouvoir decouper les tokens au fur et à mesure que tu avances. ensuite, tu pourras constituer ton arbre. seulement une fois qu'un element est lu et construit, la tu le traites. donc pas besoin de copie
suis la piste que te file Patrick, c'est la bonne (c'est à cet article que je faisais reference). la, t'es parti pour te reecrire completement l'affaire, et ça craint : encodage, commentaires...
A+
-- ps : on se telephone, j'en ai de bonnes à te raconter :)
> En fait, tu parles de Stream et sa position. Moi je parle de
StreamReader.
StreamReader possedant un BaseStream, j'ai rangé les deux dans le meme sac.
C'est pour ça que je voulais utiliser le passage par valeur.
abandonne cette idée
ouvre autant de fois le Stream que tu veux à la position. ou alors, lit le
dans un byte[], et monte autant de Stream sur ce byte [] que tu as besoin,
le Stream devenant un simple curseur...
ce qui revient au meme mais t'affranchit du File
Peut-être que la piste que tu me donnes (BaseStrem.Position) va marcher.
Je vais m'y frotter tout de suite.
Oui, je fais de l'analyse syntaxique de manière temporaire sur un type
de page HTML contenant des données que je veux récupérer
automatiquement. C'est assez classique en somme.
je m'en doutais un peu.
bon normallement, tu as juste besoin de peek. le html se décide trés bien
avec un caractere d'avance.
avec un automate, tu vas pouvoir decouper les tokens au fur et à mesure que
tu avances.
ensuite, tu pourras constituer ton arbre. seulement une fois qu'un element
est lu et construit, la tu le traites.
donc pas besoin de copie
suis la piste que te file Patrick, c'est la bonne (c'est à cet article que
je faisais reference).
la, t'es parti pour te reecrire completement l'affaire, et ça craint :
encodage, commentaires...
A+
--
ps : on se telephone, j'en ai de bonnes à te raconter :)
> En fait, tu parles de Stream et sa position. Moi je parle de StreamReader.
StreamReader possedant un BaseStream, j'ai rangé les deux dans le meme sac.
C'est pour ça que je voulais utiliser le passage par valeur.
abandonne cette idée
ouvre autant de fois le Stream que tu veux à la position. ou alors, lit le dans un byte[], et monte autant de Stream sur ce byte [] que tu as besoin, le Stream devenant un simple curseur... ce qui revient au meme mais t'affranchit du File
Peut-être que la piste que tu me donnes (BaseStrem.Position) va marcher. Je vais m'y frotter tout de suite. Oui, je fais de l'analyse syntaxique de manière temporaire sur un type de page HTML contenant des données que je veux récupérer automatiquement. C'est assez classique en somme.
je m'en doutais un peu. bon normallement, tu as juste besoin de peek. le html se décide trés bien avec un caractere d'avance. avec un automate, tu vas pouvoir decouper les tokens au fur et à mesure que tu avances. ensuite, tu pourras constituer ton arbre. seulement une fois qu'un element est lu et construit, la tu le traites. donc pas besoin de copie
suis la piste que te file Patrick, c'est la bonne (c'est à cet article que je faisais reference). la, t'es parti pour te reecrire completement l'affaire, et ça craint : encodage, commentaires...
A+
-- ps : on se telephone, j'en ai de bonnes à te raconter :)