
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.
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.
Pas d'équivalent. Vous ne pouvez pas déterminer précisément le nombre
de lignes avec des polices proportionnelles.
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 |
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.
|