Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Insertar fin de archivo manualmente

Estas en el tema de Insertar fin de archivo manualmente en el foro de Visual Basic clásico en Foros del Web. Alguien me podria decir como puedo hacerle para escribir un archivo de texto e incluirle un fin de archivo hasta el final. Es que estoy ...
  #1 (permalink)  
Antiguo 11/03/2009, 11:43
Avatar de Sergestux  
Fecha de Ingreso: agosto-2007
Ubicación: Tapachula
Mensajes: 1.218
Antigüedad: 16 años, 8 meses
Puntos: 20
Insertar fin de archivo manualmente

Alguien me podria decir como puedo hacerle para escribir un archivo de texto e incluirle un fin de archivo hasta el final.

Es que estoy generando unos archivos de un layout que me pasaron donde me indican que al final, debo incluirle un caracter de fin de archivo (para windows)
Código:
Archivo = App.Path & "\Archivo.txt"
 Open Archivo For Output As #1

        For CONT = 1 To X
            Print #1, Datos     'Aca lleno los datos
        Next CONT
        Print #1, Chr("\0")       'Aca quiero meterle el fin de linea
  Close #1
  #2 (permalink)  
Antiguo 11/03/2009, 12:50
Avatar de totigo  
Fecha de Ingreso: marzo-2007
Ubicación: America
Mensajes: 103
Antigüedad: 17 años, 2 meses
Puntos: 3
De acuerdo Respuesta: Insertar fin de archivo manualmente

Para fin de linea usas las constantes de vb:

vbCr
vbCrLf

CR/LF (retorno de carro + avance de línea)
13 o "retorno de carro" (en hexadecimal 0D)
10 o "avance de línea" (en hexadecimal 0A)

Para fin de archivo, usas caracter de control 'Fin de Archivo' 26 en decimal (en hexadecimal 1A):

chr(26)


La verdad nunca he tenido la necesidad de usarlos en mis desarrollos.


Ejemplo de como generar un archivo plano:

Código vb:
Ver original
  1. Dim fnum As Integer
  2. Dim FileName As String
  3.  
  4.     FileName = "c:\prueba.txt"
  5.  
  6.    
  7.         fnum = FreeFile()
  8.         Open FileName For Output As #fnum
  9.        
  10.         For i = 0 To 10
  11.             linea = "Linea numero " & i
  12.             Print #fnum, linea
  13.         Next i
  14.  
  15.         Close #fnum
  16.  
  17.         MsgBox "Hecho! Se ha generado el archivo.", vbInformation

Última edición por totigo; 11/03/2009 a las 13:10
  #3 (permalink)  
Antiguo 12/03/2009, 08:11
Avatar de Sergestux  
Fecha de Ingreso: agosto-2007
Ubicación: Tapachula
Mensajes: 1.218
Antigüedad: 16 años, 8 meses
Puntos: 20
Respuesta: Insertar fin de archivo manualmente

Gracias intentare con el caracter que me dices chr(26), mandare el archivo y espero que sea ese, y estaba pensando cerrarlo con vbNullChar o que es lo mismo Chr(0) pero ya veo que no va por ahi la cosa
  #4 (permalink)  
Antiguo 12/03/2009, 08:30
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: Insertar fin de archivo manualmente

Cita:
Iniciado por Sergestux Ver Mensaje
Gracias intentare con el caracter que me dices chr(26), mandare el archivo y espero que sea ese, y estaba pensando cerrarlo con vbNullChar o que es lo mismo Chr(0) pero ya veo que no va por ahi la cosa
La verdad es que no entiendo para qué quieres poner el carácter de fin de archivo.

Como te dice totigo ése carácter se genera él solo al escribir y cerrar el archivo.

  #5 (permalink)  
Antiguo 12/03/2009, 09:37
Avatar de Sergestux  
Fecha de Ingreso: agosto-2007
Ubicación: Tapachula
Mensajes: 1.218
Antigüedad: 16 años, 8 meses
Puntos: 20
Respuesta: Insertar fin de archivo manualmente

Bueno yo hace poco generaba unos archivos para un sistema tipo unix y al igual me pedian que le insertara el caracter de fin de linea Ctrl + D y eso era lo que hacia, a pesar de que el archivo debia tener su propio fin de linea.

Lo que sucede es que esos archivos son subidos a otro sistema y supongo que asi es como trabaja la logica del sistema, es decir que no dejan de leer hasta que encuentren el caracter que indica que el archivo ha terminado
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:03.