Programación General > Visual Basic para principiantes
Crear txt
ARMANDO80:
Buenos Dias, necesito realizar un txt, el cual debe quedar de la siguiente manera:
V0004736880 000000000134142 C 000 01082428160200020603 José Lucidio ,Alvarado Herrera
V0007358451 000000000511645 C 000 01082428190100015572 Luís Alberto ,González Herrera
de ante mano agradezco la ayuda que me puedan brindar.
RHL:
asi:
--- Código: Visual Basic ---Dim f As Long f = FreeFile Open RUTA & "\FILE.txt" For Output As #f Print #f, "V0004736880 000000000134142 C 000 01082428160200020603 José Lucidio ,Alvarado Herrera" & vbCrLf & _ "V0007358451 000000000511645 C 000 01082428190100015572 Luís Alberto ,González Herrera" Close #f
ARMANDO80:
no entendi lo que colocaste, te explico yo ya tengo este codigo que me corre perfecto lo unico es que uno de los campo me
queda pegado.
este es el codigo
Private Sub Command1_Click()
'este data actualiza el dbgrid
Data1.Refresh
With Data
.RecordSource = "SELECT * FROM APORTE_MENSUAL"
.Refresh
If .Recordset.RecordCount > 0 Then
.Recordset.MoveLast
.Recordset.MoveFirst
While Not (.Recordset.EOF)
.Recordset.Edit
For i = 0 To 6
If .Recordset.Fields(i) <> "" Then
.Recordset.Fields(0) = Trim(.Recordset.Fields(0)) & " "
.Recordset.Fields(1) = Trim(.Recordset.Fields(1)) & " "
.Recordset.Fields(2) = Trim(.Recordset.Fields(2)) & " "
.Recordset.Fields(3) = Trim(.Recordset.Fields(3)) & " "
.Recordset.Fields(4) = Trim(.Recordset.Fields(4)) & " "
.Recordset.Fields(5) = Trim(.Recordset.Fields(5)) & " "
.Recordset.Fields(6) = Trim(.Recordset.Fields(6)) & " "
Else
.Recordset.Fields(i) = " "
End If
Next i
.Recordset.Update
.Recordset.MoveNext
Wend
End If
End With
Call Generartxtnomina(Data)
End Sub
Public Sub Generartxtnomina(Data As Data)
Dim linea, c As String
Dim strRow As String
Dim strField As String
Dim tamaño As Integer
Open "C:\FIDEICOMISO\APORTE.txt" For Output As #1
Data.RecordSource = "SELECT * FROM APORTE_MENSUAL"
'**********************************************************
'ORDENA LOS DATOS POR FECHA DE INGRESO EN TXT
Data.RecordSource = "SELECT * FROM aporte_mensual order by FECHA_INGRESO asc"
'**********************************************************
Data.Refresh
With Data.Recordset
.MoveFirst
Do While Not .EOF
For i = 0 To 4
' Si un campo tiene un valor, agrega comillas.
If Len(.Fields(i)) > 0 Then
strRow = strRow & .Fields(i)
Debug.Print Len(strRow)
Else
strField = " "
End If
' Agrega el valor del campo y un delimitador de tabulación
' a la cadena de salida.
Next
'-------ESTE CODIGO PERMITE COLOCAR NOMBRE 20 PARA QUE SE UBIQUE EL APELLIDO---------------------------
c = concatenar(Data.Recordset.Fields(5), " ", 20)
strRow = Trim(strRow) & c
c = concatenar(Data.Recordset.Fields(6), " ", 20)
strRow = strRow & c
'************************************************************
Print #1, strRow
salta:
strRow = " "
.MoveNext
Loop
End With
Close
Data.Refresh
MsgBox "Archivo Generado con Exito", vbInformation + vbOKOnly, "Validación"
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
Private Sub Form_Load()
Data1.RecordSource = "SELECT * FROM aporte_mensual order by FECHA_INGRESO asc"
Data1.Refresh
DBGrid1.Refresh
End Sub
Private Function concatenar(cadena As String, caracter As String, longitud As Integer) As String
Dim l As Integer
'cadena = Trim(cadena)
'l = Len(Trim(cadena))
'For i = l To longitud - 1
' cadena = cadena & caracter
'Next i
'concatenar = cadena
'es otra manera de concatenar
concatenar = Left$(Trim$(cadena) & String(longitud, caracter), longitud)
End Function
con este codigo me genera el txt de esta manera
V0003863512 000000000203061 C 000 01082428120200123801Alirio José ,Romero Colmenárez
lo que necesito es que no me quede pegado el numero de cuenta con el nombre, necesito que tenga un espacio.
RHL:
Si tuviera los valores exactos de las variables que ocupas podria decirte exactamente adonde va el espacio, pero
creo que es aqui:
strRow = strRow & c
osea se asi asi:
strRow = strRow & " " & c
ARMANDO80:
si es como me dices lo que pasa q m agarra punto coma etc, menos el espacio en blanco, te exlpico mejor.
lo coloco asi
c = concatenar(Data.Recordset.Fields(4), " ", 20)
strRow = strRow & ","
me genera el txt asi:
V0004736880 000000000134142 C 000 01082428160200020603 ,José Lucidio ,Alvarado Herrera
V0007358451 000000000511645 C 000 01082428190100015572 ,Luís Alberto ,González Herrera
me da el espacio pero me aparece la coma.
si lo coloco con asi me queda igual sin el espacio
c = concatenar(Data.Recordset.Fields(4), " ", 20)
strRow = strRow & " "
V0004736880 000000000134142 C 000 01082428160200020603José Lucidio ,Alvarado Herrera
V0007358451 000000000511645 C 000 01082428190100015572Luís Alberto ,González Herrera
que estoy haciendo mal
Navegación
[#] Página Siguiente
Ir a la versión completa