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

helppp

Estas en el tema de helppp en el foro de Visual Basic clásico en Foros del Web. tengo que leer un archivo de texto delimitado por tabulador y mostrarlo en un datagrid para posteerirmente almacenarlo en mysql todo esto desde vb6 Private ...
  #1 (permalink)  
Antiguo 23/01/2009, 09:26
 
Fecha de Ingreso: enero-2009
Mensajes: 31
Antigüedad: 15 años, 3 meses
Puntos: 0
helppp

tengo que leer un archivo de texto delimitado por tabulador y mostrarlo en un datagrid para posteerirmente almacenarlo en mysql todo esto desde vb6

Private Function Leer_Txt_con_Ado() As ADODB.Recordset

Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
Dim conn As ADODB.Connection
Set conn = New ADODB.Connection

'Cadena de conexión
conn.Open "DRIVER={Microsoft Text Driver (*.txt; *.csv)};" & _
"DBQ=" & App.Path & ";", "", ""

'Ejecutamos el recordset pasandole el archivo de texto en la cláusula From
rs.Open "select * from [datos#txt]", conn, adOpenStatic, _
adLockReadOnly, adCmdText

'eliminamos las variables
Set Leer_Txt_con_Ado = rs
Set rs = Nothing
Set conn = Nothing
End Function

Private Sub Command1_Click()
'Le asignamos el Datasource del datagrid a la función que devuelve el recordset
Set DataGrid1.DataSource = Leer_Txt_con_Ado
End Sub


esta es la funcion
ahora el problema es que con los archivos delimitados por coma los lee bien pero los por tabulador nop como arreglo la conexion para que me muesre bien los datos en el datagrid del txt delimitado por tabulador
  #2 (permalink)  
Antiguo 23/01/2009, 09:59
 
Fecha de Ingreso: enero-2009
Mensajes: 31
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: helppp

ya cache que habia que editarlo desde el registro para que me pescara y funko perfecto ahora si alguien sabe como podria hacerlo desde visual esto para que cuando corra el programita me lo arregle de inmediato
asi tiene que quedar el registro

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Jet \ 4.0 \ Engines \ Text
"Format" = "TabDelimited"
  #3 (permalink)  
Antiguo 25/01/2009, 22:59
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: helppp

Tema trasladado a Visual Basic.

http://www.forosdelweb.com/f21/funci...-datos-413499/
  #4 (permalink)  
Antiguo 26/01/2009, 02:57
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: helppp

Cita:
Iniciado por kakoxvid Ver Mensaje
ya cache que habia que editarlo desde el registro para que me pescara y funko perfecto ahora si alguien sabe como podria hacerlo desde visual esto para que cuando corra el programita me lo arregle de inmediato
asi tiene que quedar el registro

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Jet \ 4.0 \ Engines \ Text
"Format" = "TabDelimited"
Código:
' en la parte de declaraciones del módulo:
Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long

Const HKEY_LOCAL_MACHINE = &H80000002
Const REG_SZ = 1

' en el Load del Form o un CommandButton:
Dim lRet As Long, sSep As String
' leer el registro para comprobar el separador
RegOpenKey HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Jet\4.0\Engines\Text", lRet
sSep = LeerRegistro(lRet, "Format")
RegCloseKey lRet
If sSep <> "TabDelimited" Then
    ModificarRegistro HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Jet\4.0\Engines\Text", "Format", "TabDelimited"
End If

' Funciones para leer y modificar el registro:
Function LeerRegistro(ByVal HK_LM As Long, ByVal sValor As String) As String
Dim lRet As Long, lLen As Long, sBuffer As String
lRet = RegQueryValueEx(HK_LM, sValor, 0, 0, ByVal 0, lLen)
If lRet = 0 Then
    sBuffer = String(lLen, Chr$(0))
    lRet = RegQueryValueEx(HK_LM, sValor, 0, 0, ByVal sBuffer, lLen)
    If lRet = 0 Then
        LeerRegistro = Left$(sBuffer, InStr(1, sBuffer, Chr$(0)) - 1)
    End If
End If
End Function
'

Sub ModificarRegistro(HKLM As Long, sPath As String, sClave As String, sDatos As String)
Dim lRet As Long, hKey As Long
lRet = RegCreateKey(HKLM, sPath, hKey)
lRet = RegSetValueEx(hKey, sClave, 0, REG_SZ, ByVal sDatos, Len(sDatos))
lRet = RegCloseKey(hKey)
End Sub
Saludos
  #5 (permalink)  
Antiguo 26/01/2009, 06:48
 
Fecha de Ingreso: enero-2009
Mensajes: 31
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: helppp

Cita:
Iniciado por Avellaneda Ver Mensaje
Código:
' en la parte de declaraciones del módulo:
Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long

Const HKEY_LOCAL_MACHINE = &H80000002
Const REG_SZ = 1

' en el Load del Form o un CommandButton:
Dim lRet As Long, sSep As String
' leer el registro para comprobar el separador
RegOpenKey HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Jet\4.0\Engines\Text", lRet
sSep = LeerRegistro(lRet, "Format")
RegCloseKey lRet
If sSep <> "TabDelimited" Then
    ModificarRegistro HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Jet\4.0\Engines\Text", "Format", "TabDelimited"
End If

' Funciones para leer y modificar el registro:
Function LeerRegistro(ByVal HK_LM As Long, ByVal sValor As String) As String
Dim lRet As Long, lLen As Long, sBuffer As String
lRet = RegQueryValueEx(HK_LM, sValor, 0, 0, ByVal 0, lLen)
If lRet = 0 Then
    sBuffer = String(lLen, Chr$(0))
    lRet = RegQueryValueEx(HK_LM, sValor, 0, 0, ByVal sBuffer, lLen)
    If lRet = 0 Then
        LeerRegistro = Left$(sBuffer, InStr(1, sBuffer, Chr$(0)) - 1)
    End If
End If
End Function
'

Sub ModificarRegistro(HKLM As Long, sPath As String, sClave As String, sDatos As String)
Dim lRet As Long, hKey As Long
lRet = RegCreateKey(HKLM, sPath, hKey)
lRet = RegSetValueEx(hKey, sClave, 0, REG_SZ, ByVal sDatos, Len(sDatos))
lRet = RegCloseKey(hKey)
End Sub
Saludos

gracias amigo por la ayuda ,, pero sabes me manda un error que dice procedimiento sub o function no definido
y me marca la linea del RegOpenKey
  #6 (permalink)  
Antiguo 26/01/2009, 08:05
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: helppp

Leiste esto?

' en el Load del Form o un CommandButton:

ese código lo tienes que poner en un evento.

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 08:29.