MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 08/01/08, 11:13:19
nachosds nachosds is offline
Member
 
Fecha de Ingreso: dic 2007
Localización: Cadiz - España
Mensajes: 48
Como NO sobreescribir un fichero

Muy buenas!

Me gustaria saber si hay alguna orden para abrir in fichero en modo escritura pero de manera que no sobreescriba lo que habia ya antes.

Esque, al poner el siguiente codigo, primero lo que hago es leer un fochero ya existente y cargar sus datos en los registros, y luego escribo en otro fichero. Pues bien, si ejecuto el programa 2 veces y cambio los datos del fichero de lectura (fic), luego al pasarlo al fichero de salida (fic2), éstos se me machacan.
¿Habria alguna forma de hacerlo para que no sobreescriba?

El codigo en cuestion es este:


REPORT Z_PFICHERO.

****************************
* creamos variables *
****************************
DATA: BEGIN OF REC,
valor1(5) TYPE c,
valor2(4) TYPE c,
END OF REC.

****************************
* abrimos fichero *
* leemos y rellenamos REG *
****************************
OPEN DATASET 'd:/fic.txt'.

READ DATASET 'd:/fic.txt' INTO REC.
IF SY-SUBRC = 8.
WRITE:/ 'vamonos'.
EXIT.
ENDIF.
WRITE:/ REC-valor1,REC-valor2.
CLOSE DATASET 'd:/fic.txt'.


****************************
* creamos fic2 salida *
****************************
OPEN DATASET 'd:/fic2.txt'
FOR OUTPUT
IN TEXT MODE.
****************************
* escribimos los valores *
* de REG en el nuevo fic2 *
****************************
TRANSFER REC TO 'd:/fic2.txt'.

CLOSE DATASET 'd:/fic2.txt'.
Responder Con Cita
  #2  
Viejo 08/01/08, 11:23:38
Avatar de robert_milan
robert_milan robert_milan is offline
Senior Member
 
Fecha de Ingreso: jun 2006
Localización: Mexico, DF
Mensajes: 315
por que no creas el fichero 2 variable y le agregas la fecha y hora para que distingas los ficheros.

lo puedes hacer con la instruccion concatenate.

Saludos y espero te sirva.
__________________
Un Huevon No Inútil


Solo di lo que piensas, a la mejor tienes la mejor respuesta....

Si alguien ya lo hizo, copialo y cambiale las variables total es un codigo nuevo.....

Si SAP lo hace se puede hacer, no me pidas hacer algo que SAP no ha hecho.....

Consultor FI jr/ABAP Sr.
Responder Con Cita
  #3  
Viejo 08/01/08, 11:24:32
nachosds nachosds is offline
Member
 
Fecha de Ingreso: dic 2007
Localización: Cadiz - España
Mensajes: 48
Perdon por el sangrado de los asteriscos, pero no se como hacerlo bien...
Responder Con Cita
  #4  
Viejo 08/01/08, 11:29:08
Avatar de robert_milan
robert_milan robert_milan is offline
Senior Member
 
Fecha de Ingreso: jun 2006
Localización: Mexico, DF
Mensajes: 315
facil:
var1 (15) type c,
var2 (15) type c.

concatenate 'd:\fic2\' sy-date sy-uzeit '.txt into var1

y en la instruccion OPEN DATASET VAR1

TRANSFER REC TO var1

CLOSE DATASET var1

asi todo lo enviaras a un fichero fic2con fecha de procesamiento y hora de procesamiento por lo que nunca se sobreescribira.
__________________
Un Huevon No Inútil


Solo di lo que piensas, a la mejor tienes la mejor respuesta....

Si alguien ya lo hizo, copialo y cambiale las variables total es un codigo nuevo.....

Si SAP lo hace se puede hacer, no me pidas hacer algo que SAP no ha hecho.....

Consultor FI jr/ABAP Sr.
Responder Con Cita
  #5  
Viejo 08/01/08, 11:43:04
Mauricio Hidalgo Mauricio Hidalgo is offline
Senior Member
 
Fecha de Ingreso: may 2006
Localización: Santiago, Chile
Mensajes: 481
Si quieres agregar datos aun fichero sin perder lo que ya existe. Tienes que abrir el archivo con APPENDING.

OPEN DATASET <dsn> FOR APPENDING.....
Responder Con Cita
  #6  
Viejo 08/01/08, 13:15:20
nachosds nachosds is offline
Member
 
Fecha de Ingreso: dic 2007
Localización: Cadiz - España
Mensajes: 48
Muchas gracias, eso del apending funciona perfecto!

Otra preguntita...

¿Se podria hacer un menu para pedir datos por teclado, realice una accion y que vuelva al menu?

Por ejemplo:

Menu:
1)Suma
2)Resta

Introduzca opcion: __
Responder Con Cita
  #7  
Viejo 08/01/08, 13:59:17
Bego86 Bego86 is offline
Junior Member
 
Fecha de Ingreso: ene 2008
Mensajes: 27
hola alguien tiene ejercicios propuestos para poder practicar????

GRACIAS
Responder Con Cita
  #8  
Viejo 08/01/08, 14:03:28
Mauricio Hidalgo Mauricio Hidalgo is offline
Senior Member
 
Fecha de Ingreso: may 2006
Localización: Santiago, Chile
Mensajes: 481
Eso Lo Puedes Hacer Con Una Pantalla De Seleccion...seria Algo Así Como

Program Ztest3.

Parameters Suma Type C Radiobutton Group Radi.
Parameters Resta Type C Radiobutton Group Radi.

Start-of-selection.
If Suma = 'x'.
Perform Suma.
Endif.

If Resta = 'x'.
Perform Resta.
Endif.

*---------------------------
* R U T I N A S
*---------------------------

Form Suma.
Endform.

Form Resta.
Endform.
Responder Con Cita
  #9  
Viejo 08/01/08, 14:24:46
nachosds nachosds is offline
Member
 
Fecha de Ingreso: dic 2007
Localización: Cadiz - España
Mensajes: 48
OK, pero lo malo que esto solo lo pide una vez... ¿Como se haria para que cuando terminara, te lo volviera a pedir?

Gracias!
Responder Con Cita
  #10  
Viejo 08/01/08, 14:31:50
Bego86 Bego86 is offline
Junior Member
 
Fecha de Ingreso: ene 2008
Mensajes: 27
Mira intento obtener datos por teclado pero me gustaria q me preguntara mas de una vez.

yo por ejemplo pido dos numeros con
PARAMETERS y realizo una operacion pero quiero q me vuelva a pedir de nuevo otros numeros distintos para hacer otra sucesivamente hasta alguna condicion.

GRACIAS
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 14:31:37.


www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web