Compter le nombre de lignes d'un texte en c++

scarface15 Messages postés 11 Date d'inscription jeudi 24 décembre 2009 Statut Membre Dernière intervention 1 mai 2010 - 1 mai 2010 à 19:57
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 2 mai 2010 à 13:35
bonjour
voila je suis sur le point de réaliser un analyseur de texte qui donne les statistiques d'un texte donner en entrée par l'utilisateur ,sachant que je travail avec QT et C++ dons je vous demande si vous pouvez m'aidez a réaliser les fonctions qui calculent le nombre de lignes et de mots et de paragraphes s'il vous c urgent..............@+

3 réponses

cs_GG29 Messages postés 326 Date d'inscription vendredi 23 décembre 2005 Statut Membre Dernière intervention 8 février 2011 17
1 mai 2010 à 20:30
Je te conseille de poster sur le bon forum. C++ != vb
Vu la complexité de ce que tu demandes, un simple tuto sur les chaines de caractères devrait résoudre ton problème.

---
Généralement le bug se situe entre le clavier et la chaise.
Le temps est une "chose" introuvable dont l'existence ne fait aucun doute.
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
1 mai 2010 à 21:44
Salut,

Je déplace vers le forum de C++
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
2 mai 2010 à 13:35
- nbr lignes:
Compter le nbr d'octets qui valent 10 (separateur de ligne) et enfin ajouter 1.

- nbr paragraphes:
Je pense meme principe selon ce que tu as comme séparateur (au lieu de 10) de paragraphes.

- nbr mots:
Ouh là c'est nettement plus complexe, dépendra d'un alphabet de séparateurs de mots pour les déterminer.
Juste pour le fun, exemple x64 utilisant le jeu d'instructions SSE 4.2
__declspec(align(16)) BYTE btALPHAFULL[16] = {39, 39, 48, 57, 65, 90, 97, 255, 0};
char szB[] = "aatqaabSE tstSSE tstSSE tstSSE tstSSE";
Comptons le nbr de mots dans szB:
UINT64 v = CompteMots(szB, btALPHAFULL);

; UINT64 CompteMots(char *psz, char *pALIGN16alphaRange)
CompteMots PROC
  movdqa      xmm3, [rdx]
  movdqu      xmm1, [rcx]
  xor         edx, edx
  pcmpistrm   xmm3, xmm1, 04h
  movdqa      xmm4, xmm0
  movdqa      xmm1, xmm0
  psrld       xmm4, 15
  movdqa      xmm5, xmm1
  psllw       xmm5, 1
  pxor        xmm5, xmm0
  pextrd      eax, xmm5, 0
  jz          short lastFRAGMENT
  popcnt      eax, eax
  add         rcx, 16
  add         rdx, rax
next16:
  movdqu      xmm1, [rcx]
  pcmpistrm   xmm3, xmm1, 04h
  movdqa      xmm5, xmm4
  movdqa      xmm4, xmm0
  psrld       xmm4, 15
  movdqa      xmm1, xmm0
  psllw       xmm1, 1
  por         xmm5, xmm1
  pxor        xmm5, xmm0
  pextrd      eax, xmm5, 0
  jz          short lastFRAGMENT
  popcnt      eax, eax
  add         rcx, 16
  add         rdx, rax
  jmp         short next16
lastFRAGMENT:
  popcnt      eax, eax
  add         rax, rdx
  shr         rax, 1
  ret         0
CompteMots ENDP



ciao...
BruNews, MVP VC++
0
Rejoignez-nous