Problema con FileGet
Publicado por Pedro (2 intervenciones) el 05/08/2009 19:45:13
Estimados , estoy migrando mi primer programa desde Visual 6.0 a 2008 y no me funciona correctamente el FileGet si habro el archivo en modo OpenMode.Random
tengo variable: Dim RegInd As New VB6.FixedLengthString(23)
y cuando la llamo con: FileGet(CanalI, RegInd.Value, RegI)
me dice Longitud de Registro Incorrecta
cabe señalar que si lo abro en modo FileOpen(CanalI, Ni, OpenMode.Binary) no tengo este problema pero no puedo trabajar con los indices.
adjunto un trozo de mi codigo, cualquier ayuda se los agradesco de ante mano, si pueden me escriben a mi correo netpablo@ hotmail.com o me dejan el suyo.
For ContRegsI = 1 To UltimoDocto
'If (ContRegsI Mod 2) = IZQUIERDA Then
'Procesando documento izquierdo
'RegI = RegStartLote + (ContRegsI + 1) / 2 - 1
RegI = PuntCol(Pc) 'RegStartLote + (ContRegsI + 1) / LxF - 1
'Estadística de proceso
'UPGRADE_WARNING: No se puede resolver la propiedad predeterminada del objeto Info.Caption. Haga clic aquí para obtener más información: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="6A50421D-15FE-4896-8A1B-2EC21E9037B2"'
' Mod 03/08/2009 comentarizado
'''Info.Caption = "Dividiendo " & N & " (" & Str(Int((ContLotes / TotLotes) * 100)) & " %) " & Str(RegI)
lblInfo.Text = "Dividiendo " & N & " (" & Str(Int((ContLotes / TotLotes) * 100)) & " %) " & Str(RegI)
System.Windows.Forms.Application.DoEvents()
'Else
' RegI = RegStartLote + (ContRegsI * 0.5 + MitadLote) - 1
'End If
If PuntCol(Pc) > ((UltimoDocto - SaldoPag) + FinPaqAnt) Then
'UPGRADE_WARNING: Put se actualizó a FilePut y tiene un nuevo comportamiento. Haga clic aquí para obtener más información: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="9B7D5ADD-D8FE-4819-A36C-6DEDAF088CC7"'
FilePut(CanalS2, GlosaIniDocto & vbCrLf)
'UPGRADE_WARNING: Put se actualizó a FilePut y tiene un nuevo comportamiento. Haga clic aquí para obtener más información: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="9B7D5ADD-D8FE-4819-A36C-6DEDAF088CC7"'
FilePut(CanalS2, FF)
Else
'Leyendo el registro de la página a leer
'en el archivo de Indice
'UPGRADE_WARNING: Get se actualizó a FileGet y tiene un nuevo comportamiento. Haga clic aquí para obtener más información: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="9B7D5ADD-D8FE-4819-A36C-6DEDAF088CC7"'
FileGet(CanalI, RegInd.Value, RegI)
'Byte de Inicio de la Hoja
StartByte = Val(Left(RegInd.Value, 10))
'Byte de Termino de la Hoja
EndByte = Val(Mid(RegInd.Value, 12, 10))
'Tamaño del Buffer
SizeDoc = EndByte - StartByte + 1
If Mid(RegInd.Value, 11, 1) <> "|" Then
MsgBox("Indice corrupto...", MsgBoxStyle.Critical, "Spool2AlAnchoSimplex")
Exit Function
End If
'Asigno el espacio de memoria para la lectura
Buf = Space(SizeDoc)
'Lectura del Docto
'UPGRADE_WARNING: Get se actualizó a FileGet y tiene un nuevo comportamiento. Haga clic aquí para obtener más información: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="9B7D5ADD-D8FE-4819-A36C-6DEDAF088CC7"'
FileGet(CanalS, Buf, StartByte)
'Escribe Nuevo Spool de Impresión
'UPGRADE_WARNING: Put se actualizó a FilePut y tiene un nuevo comportamiento. Haga clic aquí para obtener más información: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="9B7D5ADD-D8FE-4819-A36C-6DEDAF088CC7"'
FilePut(CanalS2, Buf)
End If
tengo variable: Dim RegInd As New VB6.FixedLengthString(23)
y cuando la llamo con: FileGet(CanalI, RegInd.Value, RegI)
me dice Longitud de Registro Incorrecta
cabe señalar que si lo abro en modo FileOpen(CanalI, Ni, OpenMode.Binary) no tengo este problema pero no puedo trabajar con los indices.
adjunto un trozo de mi codigo, cualquier ayuda se los agradesco de ante mano, si pueden me escriben a mi correo netpablo@ hotmail.com o me dejan el suyo.
For ContRegsI = 1 To UltimoDocto
'If (ContRegsI Mod 2) = IZQUIERDA Then
'Procesando documento izquierdo
'RegI = RegStartLote + (ContRegsI + 1) / 2 - 1
RegI = PuntCol(Pc) 'RegStartLote + (ContRegsI + 1) / LxF - 1
'Estadística de proceso
'UPGRADE_WARNING: No se puede resolver la propiedad predeterminada del objeto Info.Caption. Haga clic aquí para obtener más información: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="6A50421D-15FE-4896-8A1B-2EC21E9037B2"'
' Mod 03/08/2009 comentarizado
'''Info.Caption = "Dividiendo " & N & " (" & Str(Int((ContLotes / TotLotes) * 100)) & " %) " & Str(RegI)
lblInfo.Text = "Dividiendo " & N & " (" & Str(Int((ContLotes / TotLotes) * 100)) & " %) " & Str(RegI)
System.Windows.Forms.Application.DoEvents()
'Else
' RegI = RegStartLote + (ContRegsI * 0.5 + MitadLote) - 1
'End If
If PuntCol(Pc) > ((UltimoDocto - SaldoPag) + FinPaqAnt) Then
'UPGRADE_WARNING: Put se actualizó a FilePut y tiene un nuevo comportamiento. Haga clic aquí para obtener más información: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="9B7D5ADD-D8FE-4819-A36C-6DEDAF088CC7"'
FilePut(CanalS2, GlosaIniDocto & vbCrLf)
'UPGRADE_WARNING: Put se actualizó a FilePut y tiene un nuevo comportamiento. Haga clic aquí para obtener más información: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="9B7D5ADD-D8FE-4819-A36C-6DEDAF088CC7"'
FilePut(CanalS2, FF)
Else
'Leyendo el registro de la página a leer
'en el archivo de Indice
'UPGRADE_WARNING: Get se actualizó a FileGet y tiene un nuevo comportamiento. Haga clic aquí para obtener más información: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="9B7D5ADD-D8FE-4819-A36C-6DEDAF088CC7"'
FileGet(CanalI, RegInd.Value, RegI)
'Byte de Inicio de la Hoja
StartByte = Val(Left(RegInd.Value, 10))
'Byte de Termino de la Hoja
EndByte = Val(Mid(RegInd.Value, 12, 10))
'Tamaño del Buffer
SizeDoc = EndByte - StartByte + 1
If Mid(RegInd.Value, 11, 1) <> "|" Then
MsgBox("Indice corrupto...", MsgBoxStyle.Critical, "Spool2AlAnchoSimplex")
Exit Function
End If
'Asigno el espacio de memoria para la lectura
Buf = Space(SizeDoc)
'Lectura del Docto
'UPGRADE_WARNING: Get se actualizó a FileGet y tiene un nuevo comportamiento. Haga clic aquí para obtener más información: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="9B7D5ADD-D8FE-4819-A36C-6DEDAF088CC7"'
FileGet(CanalS, Buf, StartByte)
'Escribe Nuevo Spool de Impresión
'UPGRADE_WARNING: Put se actualizó a FilePut y tiene un nuevo comportamiento. Haga clic aquí para obtener más información: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="9B7D5ADD-D8FE-4819-A36C-6DEDAF088CC7"'
FilePut(CanalS2, Buf)
End If
Valora esta pregunta


0