|
Abajo tienes el fuente de un programa que vale como prueba de concepto
de lo que quieres hacer. Compílalo y lo pruebas. Si tienes alguna duda
lo comentamos. H dftactgrp(*no) H actgrp(*new) * * Necesario para usar las funciones C H bnddir('QC2LE') * * memmove es la versión segura de memcpy, a utilizar si no se está seguro * de que destino se solapa con origen. También es más costoso de ejecutar, * por lo que si se sabe que no se van a solapar, es más eficiente usar * memcpy * D memmove PR * extproc('memmove') D destino * value D origen * value D tamanyo 10U 0 value * D memcpy PR * extproc('memcpy') D destino * value D origen * value D tamanyo 10U 0 value * * D DS DS qualified inz D campo1 10A D campo2 3P 0 D campo3 5A * * * Función para definir el valor de un campo en la DS * D definir PR D campo 10A value D @valor * value * * * D wrkCampo1 S like(ds.campo1) D wrkCampo2 S like(ds.campo2) D wrkCampo3 S like(ds.campo3) * /free wrkcampo1 = 'ABCDEFGHIJ'; definir('campo1': %addr(wrkcampo1)); dsply ds.campo1; dsply ds.campo2; dsply ds.campo3; wrkcampo2 = 123; definir('campo2': %addr(wrkcampo2)); dsply ds.campo1; dsply ds.campo2; dsply ds.campo3; wrkcampo3 = 'abcdefghij'; definir('campo3': %addr(wrkcampo3)); dsply ds.campo1; dsply ds.campo2; dsply ds.campo3; *inlr = *on; /end-free P definir B D PI D campo 10A value D @valor * value * D posicion S 10I 0 D tamanyo S 10I 0 D @ds S * inz(%addr(ds)) * * Defino la posición inicial del campo dentro de la DS y su tamaño. * (Esta información se obtendría de dspffd, pero lo hago así para * simplificar el ejemplo) * /free if campo = 'campo1'; posicion = %addr(ds.campo1) - @ds; tamanyo = %size(ds.campo1); elseif campo = 'campo2'; posicion = %addr(ds.campo2) - @ds; tamanyo = %size(ds.campo2); elseif campo = 'campo3'; posicion = %addr(ds.campo3) - @ds; tamanyo = %size(ds.campo3); endif; memcpy(@ds + posicion: @valor: tamanyo); /end-free * P definir E
Saludos.
Fernando Pérez Cerámica Saloni. Dpto. Auditoría y Organización Jaime Villa Torres escribió:
|
begin:vcard fn;quoted-printable:Fernando P=C3=A9rez n;quoted-printable:P=C3=A9rez;Fernando org;quoted-printable:;Auditor=C3=ADa y Organizaci=C3=B3n email;internet:[EMAIL PROTECTED] tel;work:Ext. 627 x-mozilla-html:TRUE version:2.1 end:vcard
__________________________________________________ Forum.HELP400 es un servicio más de NEWS/400. © Publicaciones Help400, S.L. - Todos los derechos reservados http://www.help400.es _____________________________________________________ Para darte de baja visita la siguente URL: http://listas.combios.es/mailman/listinfo/forum.help400

