Lecture d'un buffer par tranche de caracteres
souriiis
Messages postés
2
Statut
Membre
-
loupius -
loupius -
bonjour a tous et toutes, je suis un "novice" en c++.
je cherche a lire le contenu d'un buffer par tranche de caracteres. Ce buffer a été préalablement rempli par le contenu d'un fichier .TXT
j'ai trouver une astuce qui me permet de lire le buffer mot par mot seulement la structure du fichier est tel que certains mots se suivent et donc ne sont considéré que comme un seul mot :
ex : 12.89563.45
ici j'ai 2 prix 12.89 et 563.45
mes "mots" sont a des endroits fixes dans mon fichier. c'est a dire que le premier prix commence a un nombre de caractere fixe (par ex: au 88° caractere) et est stocké sur 9 de long.
quelles sont les solutions pour lire le buffer par tranche de caracteres. j'entend par la : lire le buffer du caractere 88 au caractere 96 par exemple.
merci a tous pour vos reponses.
bonne journée !
je cherche a lire le contenu d'un buffer par tranche de caracteres. Ce buffer a été préalablement rempli par le contenu d'un fichier .TXT
ifstream fichier ;
fichier.open( "mon_fichier.txt" ) ;
if (fichier)
{
stringstream buffer ;
buffer << fichier.rdbuf() ;
fichier.close() ;
j'ai trouver une astuce qui me permet de lire le buffer mot par mot seulement la structure du fichier est tel que certains mots se suivent et donc ne sont considéré que comme un seul mot :
ex : 12.89563.45
ici j'ai 2 prix 12.89 et 563.45
mes "mots" sont a des endroits fixes dans mon fichier. c'est a dire que le premier prix commence a un nombre de caractere fixe (par ex: au 88° caractere) et est stocké sur 9 de long.
quelles sont les solutions pour lire le buffer par tranche de caracteres. j'entend par la : lire le buffer du caractere 88 au caractere 96 par exemple.
merci a tous pour vos reponses.
bonne journée !
A voir également:
- Lecture d'un buffer par tranche de caracteres
- Caractères spéciaux - Guide
- Accusé de lecture gmail - Guide
- Confirmation de lecture whatsapp - Guide
- Caracteres speciaux - Guide
- Lecture epub sur pc - Guide
3 réponses
Pour ca c'est pas trop compliqué,
en fait tu utilise ton buffer comme un tableau
le premier caractere est en 0 donc pour lire de 88 à 96 tu fait
for (int i=88;i<=96;i++)
cout << buffer.str()[i];
Ca devrai fonctionner.
De mon coté j'ia aussi un probleme dans le meme style mais plus complexe.
Je cherche a partir d'un buffer à identifier chaque partie de ma ligne genre
N4GR2 UA1_2 [BRAVAIA] 19/11/2008 08:00:00 10:00:00 511
identifier chaque partie (nom , date , heure debut , heure fin, puis salle) pour pouvoir les traiter ensuite.
en fait tu utilise ton buffer comme un tableau
le premier caractere est en 0 donc pour lire de 88 à 96 tu fait
for (int i=88;i<=96;i++)
cout << buffer.str()[i];
Ca devrai fonctionner.
De mon coté j'ia aussi un probleme dans le meme style mais plus complexe.
Je cherche a partir d'un buffer à identifier chaque partie de ma ligne genre
N4GR2 UA1_2 [BRAVAIA] 19/11/2008 08:00:00 10:00:00 511
identifier chaque partie (nom , date , heure debut , heure fin, puis salle) pour pouvoir les traiter ensuite.
Traitement de chaînes de caractères ======>>>>>> Perl est la solution
1 ligne suffit à faire le découpage.
On peut faire plus succinct, tout dépend des conditions de la ligne à traiter.
#!/usr/bin/perl -w
use strict;
$_ = "N4GR2 UA1_2 [BRAVAIA] 19/11/2008 08:00:00 10:00:00 511";
m[(.*?)\s(\d{2}/\d{2}/\d{4})\s(\d{2}:\d{2}:\d{2})\s(\d{2}:\d{2}:\d{2})\s(\d*)];
print "nom\t: ". $1 ."\n";
print "date\t: ". $2 ."\n";
print "heure début\t: ". $3 ."\n";
print "heure fin\t: ". $4 ."\n";
print "salle\t: ". $5 ."\n";
1 ligne suffit à faire le découpage.
On peut faire plus succinct, tout dépend des conditions de la ligne à traiter.