Clipper/FiveWin - limitacion del Fwrite

 
Vista:
sin imagen de perfil

limitacion del Fwrite

Publicado por Rosy (38 intervenciones) el 07/07/2013 18:04:42
Hola, quisiera saber si con fwrite puedo escribir una linea de largo 600 caracteres. Bueno hice la prueba pero al editar el archivo se ve como por cada linea escrita queda otra en blanco, no sé si será solo un efecto visual o la funcion fwrite tiene una limitacion en el largo de la cadena

Rosy
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de carlos labastida

limitacion del Fwrite

Publicado por carlos labastida (160 intervenciones) el 08/07/2013 03:58:28
no la funcion Fwrite no tiene limitantes, mas bien tu codigo debe tener algun error que ocasiona eso, envialo para analizarlo o explica que quieres hacer realmente y con gusto te puedo ayudar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

limitacion del Fwrite

Publicado por Rosy (38 intervenciones) el 08/07/2013 13:56:34
Hola Carlos. Tengo un sistema hecho en clipper y debo migrar los datos a otro sistema. Para esto me piden que los datos esten en un archivo plano cuyo registro es de largo 676 caracteres en total. Estoy utilizando la funcion FWRITE para lograr escribir el archivo, cuando hice las pruebas con 50 caracteres no hubo ningun problema, los registro se ven ordenados, sin embargo, cuando la cadena del registro crece a 676 caracteres al visualizar o editar el archivo plano, este se ve como que existiera una linea en blanco por cada linea de datos. Lo intenté con varios editores, block de notas y excel por ejemplo, de manera que no sé si el FWRITE tiene un maximo de caracteres por linea o bien es algo q estoy haciendo mal no sé

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
********************
FUNCTION genera_csv(arr)
**************************
*proposito : generar archivo plano (.csv)
LOCAL cCadena
 
lflag_csv := .t.
 
xtipo        := "52"
xfolio       := STRZERO(xnrguia,10)
xrut         := STR(xrutoptica,8) + '-' + xdigrut
xafecto      := "SI"
xindtraslado := "1"
 
FOR i := 1 TO LEN(arr)
 
    xcantidad := STR(VAL(arr[i,1]),8)
    xproducto := arr[i,2]
    xprecio   := STR(VAL(arr[i,3]),11)
 
    cCadena := xtipo                  + ";" +;
               xfolio                 + ";" +;
               STR(i,10)              + ";" +;
               DTOC(xfcguia)          + ";" +;
               xrut                   + ";" +;
               PADR(xnomcli,50)       + ";" +;
               PADR(xgiro,40)         + ";" +;
               PADR(xciudad,60)       + ";" +;
               PADR(xdirecc,60)       + ";" +;
               PADR(xafecto,6)        + ";" +;
               PADR(xproducto,80)     + ";" +;
               SPACE(11)              + ";" +;
               xcantidad              + ";" +;
               xprecio                + ";" +;
               SPACE(12)              + ";" +;
               SPACE(05)              + ";" +;
               SPACE(12)              + ";" +;
               SPACE(12)              + ";" +;
               SPACE(12)              + ";" +;
               SPACE(16)              + ";" +;
               SPACE(11)              + ";" +;
               SPACE(08)              + ";" +;
               SPACE(11)              + ";" +;
               SPACE(07)              + ";" +;
               SPACE(12)              + ";" +;
               SPACE(13)              + ";" +;
               SPACE(13)              + ";" +;
               SPACE(09)              + ";" +;
               SPACE(08)              + ";" +;
               PADR(xindtraslado,17)  + ";" +;
               SPACE(09)              + ";" +;
               SPACE(09)              + ";" +;
               SPACE(16)              + ";" +;
               SPACE(18)              + ";" +;
               PADR(xciudad,20)       + ";" +;
               SPACE(21) + CHR(10)+CHR(13)
 
    IF FWRITE(nFileSal, cCadena, 676) < 676
       alerta("Error!")
    ENDIF
 
NEXT
 
RETURN NIL
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de carlos labastida

limitacion del Fwrite

Publicado por carlos labastida (160 intervenciones) el 08/07/2013 21:55:09
mmh, porque no intentas mejor con el comando TEXT TO FILE, hasta donde tengo entendido FWRITE no tiene ninguna limitante, el codigo que enviaste yo lo veo bien y sin errores, salvo que para terminar la linea de texto yo uso solamente el codigo ascci 10 para dar el avance de linea, de ahi en fuera no veo ningun problema para que funcione, avisame si tienes dudas de como utilizar el comando TEXT TO FILE.... ENDTEXT saludos!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

text to file

Publicado por Rosy (38 intervenciones) el 08/07/2013 22:13:59
Bueno, como no me está funcionando el FWRITE, voy a tener que probar con el comando TEXT TO FILE. Te estoy comentando el resultado.

Dime una cosa, ¿has generado archivos planos cuyo largo de linea supere los 255 caracteres?

Gracias Carlos por tu ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

funciono!

Publicado por rosy (38 intervenciones) el 09/07/2013 00:49:35
Carlos, queria comentarte que ahora me funcionó, tenias razon respecto del codigo ascci 10, le quité el chr(13) y funcionó.

Gracias nuevamente

Rosy
Valparaiso - chile
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de carlos labastida

funciono!

Publicado por carlos labastida (160 intervenciones) el 09/07/2013 03:58:35
me da gusto que ya lo hayas resuelto, saludos desde Gdl Mexico!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar