Comment pouvez-vous rogner une variable dans CLLE ??Variable de recadrage dans CLLE
Répondre
Aucune fonction standard TRIM n'est disponible dans CLLE. Cependant,
- Si vous souhaitez coller deux variables, regardez * TCAT (ou | <). Cette commande supprime les blancs entre (par exemple 'xyz' * TCAT 'uvw' devient 'xyzuvw'
- Si vous voulez vraiment couper, alors essayez '' * TCAT $ YOURVAR * TCAT '' (impossible d'essayer celui-ci
- ILE CL Vous pouvez utiliser la commande CALLPRC pour appeler un module qui peut faire l'affaire! vous avec le module RPG ILE ou COBOL.
Comme toutes les variables CL sont de longueur fixe, il n'y a pas d'exigence logique de couper en soi.
à jo dans deux valeurs sans espaces intermédiaires, utilisez l'opérateur |<
et, pour inclure un seul espace, utilisez |>
.
Pour trouver la longueur en caractères à l'exclusion des espaces de fin, vous devez faire un bon vieux marche arrière sur la façonné valeur à l'aide% SST (& VAL & POS 1) pour tester chaque position de caractère pour un espace. Quelque chose comme:
DCL &LEN *DEC (15 0)
DCL &VAL *CHAR 50 VALUE('Some test data')
DCL &CHR15 *CHAR 15
CHGVAR &LEN 50
LOOP: IF (&LEN > 1 & %SST(&VAL &LEN 1)==' ') (DO)
CHGVAR &LEN VALUE(&LEN - 1)
GOTO LOOP
ENDDO
CHGVAR &CHR15 &LEN
SNDPGMMSG ('The length is' |> &CHR15) /* Can't concat decimal values */
Pour simplement nul mettre fin à une valeur, par exemple, faire un appel à une fonction C:
DCL &VAL *CHAR 50 VALUE('Some test text')
DCL &VALNUL *CHAR 51 /* +1 for the null */
DCL &NULL *CHAR 1 VALUE(X'00')
CHGVAR &VALNUL VALUE(&VAL |< &NULL)
EDIT 2012-07-19 *
Dans certains jeux de caractères, !
est utilisé à la place de |
. Il existe également l'opération CAT * CCSID indépendante qui peut être utilisée à la place. Voir le site Web d'IBM here et here.
Dans quelle version ces opérateurs ont-ils été introduits? Les opérateurs '| <' and '|> 'ne fonctionne pas sur notre V6R1. Comme le caractère '|' ne se trouve pas dans la même position dans toutes les pages de code EBCDIC, je ne pense pas que ce soit une bonne idée de les utiliser à la place de '* TCAT'. – kratenko
@kratenko: Voir mon edit - ils ont été là depuis au moins V3, et je parierais depuis V1. –
Les différents opérateurs existent depuis le System/38 (un prédécesseur de la série AS/400). Pour la documentation d'i 6.1, voir le sujet ** Opérateurs dans les expressions ** [Lien] (http://pic.dhe.ibm.com/infocenter/iseries/v6r1m0/index.jsp?topic=/rbam6/rbam6opsinexp.htm) . Si elles ne fonctionnent pas sur un système donné, le problème est presque garanti d'être une description de périphérique mal configurée; les attributs KBDTYPE() et/ou CHRID() sont probablement incompatibles avec la configuration du système. – user2338816
je sais que c'est vieux, mais vous pouvez utiliser% TRIM (& myVariable)
Dans les versions avant% TRIM(),% TRIML() et% TRIMR() étaient disponibles, ILE CL pourrait utiliser le ' fonction de bibliothèque triml 'C:
dcl &lPath *int value(0)
callprc 'triml' (+
&Dir +
(' ' *byval) +
) +
rtnval(&lPath)
La proc se trouve dans * SRVPGM QC2UTIL1.
Dans les deux OPM et ILE CL, je l'ai souvent utilisé:
dcl &lmsgtxt1 *dec ( 5 0) value(0)
rtvmsg msgid(cpf9897) msgf(QSYS/QCPFMSG) +
msgdta(&SQLStm) +
msglen(&lmsgtxt1)
Dans les deux cas, la longueur obtenue peut ensuite être utilisé dans une expression% SST() pour effectuer le parage réelle.
- 1. Recadrage d'image dans Richfaces
- 2. Problème de recadrage d'image
- 3. Rails: TROMBONE Recadrage Syntaxe
- 4. Problème de recadrage d'image
- 5. Image Composant de recadrage
- 6. Recadrage d'image dans Silverlight 3
- 7. Taille de recadrage personnalisée dans UIImagePickerController
- 8. Recadrage audio avec XNA
- 9. Image recadrage comme facebook
- 10. android recadrage drawable
- 11. Recadrage de l'image en PHP
- 12. recadrage et ajax téléchargement
- 13. URL Recadrage avec XSL
- 14. simple recadrage avec Paperclip
- 15. recadrage d'image noir bg
- 16. Recadrage d'une barre verticale
- 17. Recadrage personnalisé dans Rails avec Trombone
- 18. XSL media: content - cordes Recadrage dans XSLT
- 19. Problème de recadrage et de collage PIL: Le recadrage ne crée pas d'image recadrée
- 20. Recadrage d'une image de n'importe quelle forme
- 21. Drupal: imageField Recadrer: Suggestion de recadrage initial?
- 22. comment modifier le cadre de recadrage UIImagePickerController
- 23. PHP Substr Fonction Recadrage Problème
- 24. Recadrage d'une image en PHP
- 25. recadrage et ajax téléchargement de l'image
- 26. Recadrage variables de chaîne par référence dans PHP5
- 27. Recadrage d'une image dans PowerPoint à l'aide de VBA
- 28. Rotation et recadrage combinés de l'image dans jQuery
- 29. Recadrage un paramètre dans l'en-tête de la fonction
- 30. FileNotFoundException lors du recadrage d'une photo
Si vous avez besoin, alors je peux vous donner un exemple RPG. RPG est ma langue préférée sur l'iSeries. – robertnl
Le \ * TCAT supprime les espaces de fin de l'opérande à gauche de l'opérateur; les blancs principaux de l'opérande à droite ne sont pas supprimés :-(Ainsi, l'effet de la deuxième expression d'exemple [qui n'est même pas supportée, comme codée, par la chaîne vide interdite en tant que chaîne littérale, par CPD0126] correspondrait au effet d'un TRIMR plutôt que d'un TRIM [si corrigé pour la première fois, utiliser des littéraux vides.Et pour souligner cela, le premier exemple d'exemple ne supprime pas les blancs en général, en supprimant seulement le vide final du "xyz". "xyz" * TCAT "uvw" devient "xzy uvw" – CRPence