titre_site.jpg (51607 octets)

MEMLINES()

Instruction dbase IV et suivants - Dbase IV ne posséde pas l'argument longueur de ligne.

Renvoie le nombre de lignes d'un champ Mémo.

Syntaxe

MEMLINES(<champ Mémo> [,<longueur de ligne expN>] )

<champ Mémo>

Le champ Mémo sur lequel opère la fonction MEMLINES( ).

<longueur de ligne expN>

Spécifie la longueur de ligne utilisée dans le calcul du nombre de lignes d'un champ Mémo. <expN> peut varier entre 8 et 255. Si <expN> n'est pas spécifiée, MEMLINES( ) calcule chaque ligne en utilisant la largeur de mémo spécifiée par la commande SET MEMOWIDTH.

 ico_MsDos.jpg (1668 octets)  dbasedos.gif (376 octets) vdb5.gif (351 octets) Description


La fonction MEMLINES( ) renvoie le nombre de lignes d'un champ Mémo basé sur la largeur de mémo spécifiée par le paramètre <longueur de ligne expN>. Si vous ne spécifiez pas de longueur de ligne, MEMLINES( ) traite le texte du champ Mémo comme s'il retournait automatiquement à la ligne dans une largeur d'affichage de 50 caractères, à moins que vous ne spécifiez une autre largeur d'affichage avec la commande SET MEMOWIDTH.


Si un mot ne peut être contenu entièrement à la fin d'une ligne, MEMLINES( ) inclut ce mot au début de la ligne suivante. Si le nombre de caractères d'un mot est supérieur à la longueur de ligne de champ Mémo spécifiée ou par défaut, MEMLINES( ) tronque le mot à la fin de la ligne et inclut le reste du mot au début de la ligne suivante.

Une combinaison retour chariot/saut de ligne dans le texte mémo commence toujours une nouvelle ligne. Notez que si la combinaison retour chariot/saut de ligne est à la fin du contenu du champ mémo, la ligne vide à blanc qui suit, est comptée dans le nombre de lignes total.

Plus2_5-Icon.jpg (1250 octets) xDML vers ooDML

Pas d'équivalent. Vous ne pouvez pas déterminer précisément le nombre de lignes avec des polices proportionnelles.

 

Code      ico_dbIII.jpg (1345 octets)   dbasedos.gif (376 octets)   vdb5.gif (351 octets)   Plus2_5-Icon.jpg (1250 octets)

Dans l'exemple suivant, MEMLINES( ) renvoie le nombre de lignes d'un champ Mémo en fonction de la largeur d'affichage spécifiée par l'utilisateur. Au fur et à mesure qu'une variable compteur est incrémentée, MEMLINE( ) détermine si le prochain champ Mémo tient sur la page en cours :

SET TALK OFF

CLEAR

colwidth = 10

@ 6,12 SAY "Nombre de colonnes de l'état? " ;

   GET colwidth PICTURE "99" ;

   VALID colwidth > 9 .AND. colwidth < 68

READ

mwidth = SET("MEMOWIDTH")

SET MEMOWIDTH TO colwidth

USE SOCIETE

output_to = "S"

IF output_to = "S"

   pglngth = 15

ELSE

   pglngth = 58

ENDIF

linecnt = 1

memoline = 1

DO WHILE .NOT. EOF( )

   CLEAR

   linecnt = 1

   DO WHILE linecnt + MEMLINES(NOTES) <= ;

      pglngth .AND. .NOT. EOF( )

      ? SOCIETE AT 2

      linecnt = linecnt + 1

      memoline = 1

      DO WHILE memoline <= MEMLINES(NOTES) ;

         .AND. MEMLINES(NOTES) <> 0

         ? MLINE(NOTES,memoline)AT 12  && utilise instruction MLINE

         linecnt = linecnt + 1

         memoline = memoline + 1

      ENDDO

      SKIP

   ENDDO

   WAIT "Appuyez sur une touche pour continuer"

ENDDO

CLOSE ALL

SET MEMOWIDTH TO mwidth


Dans cet exemple, on supprime les deux premières lignes d'un champ mémo :

set memowidth to 50

mtemp = ' '

mTempLine = ' '

? notes         && montre le contenu actuel du champ

mnumline = memlines(notes,50)  && combien de lignes

mcounter = 3    && débute donc à la 3ème ligne

do while mcounter <= mnumline

if len(mline(notes,mcounter)) > 0 && cette ligne contient-elle des données ?

   store trim(mline(notes,mcounter)) to mtemp

   mTempLine = mTempLine + mtemp + ' ' ;

   && ajoute un espace à la fin de la nouvelle ligne

endif

mcounter = mcounter + 1

enddo

*--remplace notes

replace notes with mTempLine

? notes

Source :
Groupes de discussion : dbase.programming
De : "B. Betcher"
Date : Tue, 12 Feb 2002 13:02:35 -0600
Date/heure locale : Mar 12 fév 2002 21:02
Objet : Re: Memo Fields

 

bug_jpg.jpg (2635 octets)  Les difficultées rencontrées :

Vouloir utiliser cette commande pour l'exécuter sur une variable possédant le contenu d'un champ mémo. Elle concerne un champ mémo, ce n'est donc pas une variable caractère qui doit lui être passée mais un champ mémo, faute de quoi on générera une erreur : Not a memo field.

aParams['notes'] = form.rowset.fields['monChampMemo'].value

nLines = memlines(aParams['notes'],80)

// retourne une erreur: Not a memo field

aParams['notes'] = form.rowset.fields['monChampMemo']

nLines = memlines(aParams['notes'].value,80)
// pas d'erreur

Source :
Groupes de discussion : dbase.programming
De : John Fried <j...@dataknight.com>
Date : Fri, 20 Feb 2004 15:10:38 -0500
Date/heure locale : Ven 20 fév 2004 22:10
Objet : memlines() with memvar

L'enregistrement du contenu d'un champ numérique dans un memvar crée un memvar numérique; un champ logique crée un memvar logique, un champ caractères crée un memvar caractères et un champ BLOB crée un memvar BLOB. Cqfd !

 

 

retour

Sources :

Aide Visual dbase V5.7
http://www.dbase.com/Knowledgebase/INT/xb2vdb7oodml/x2oodml.htm
Aide dBase Plus 2.6.0

Retour à l'accueil

Si vous voyez des erreurs, ou souhaitez apporter des compléments, n'hésitez pas à le signaler.

Dernière modification : vendredi 06 août 2010

©  M.Abraham.