| ID | Asunto | Fecha | Nick | |
| 40760 | lectura por linea de archivo plano | 24/04/08 17:35 | Lestat2492 | |  |
Como puedo hacer para realizar una lectura de un archivo plano para poder detectar y almacenar en una variable el tipo de delimitador usado, ... es decir tengo mi archivo que comienza Ej: asi ----------------;(el delimitador es un punto y coma en este ejemplo), cuando llegue la lectura al primer delimitador dejo de ejecutar la instruccion y almaceno el delimitador en una variable.
Gracias de antemano. |
|
| ID | Asunto | Fecha | Nick | |
| 40789 | Re: lectura por linea de archivo plano (Resp: 40760) | 25/04/08 06:38 | juanjoa | | |
Eso sólo lo podrás hacer si conoces el ancho de los campos (al menos del primero) ya que en un archivo puede haber comas, punto y coma, etc.. que no sean precisamente el delimitador de campos. Supongamos que el primer campo tiene 5 caracteres: Open App.Path & "\MiArchivo.txt" For Input As #1
Line Input #1, s
Close #1
sSeparador = Mid(s, 6, 1) (ambas variables son Strings) Por cierto, ¿solucionaste lo de modificar el registro? Un saludo [Editado: juanjoa, 25/04/2008 08:20:23]
Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias. |
|
| ID | Asunto | Fecha | Nick | |
| 40796 | Re: lectura por linea de archivo plano (Resp: 40760) | 25/04/08 10:08 | Lestat2492 | | |
Gracias, .... y lo de modificar el registro no logro entender como hacerlo. no encontre mucho para informarme. Podrias ayudarme con algun ejemplo. (la consulta anterior viene enlazada con esto porque yo debo saber que tipo de delimitador tengo para poder modificarlo.) te dejo mi correo por si tienes algun ejemplo para ayudarme. [email protected]Muchas Gracias
Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias. |
|
| ID | Asunto | Fecha | Nick | |
| 40798 | Re: lectura por linea de archivo plano (Resp: 40796) | 25/04/08 10:45 | juanjoa | | |
Bueno, mejor que enviártelo por correo, lo pongo aquí por si a alguién más le es de utilidad: Option Explicit
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 RegCloseKey Lib
"advapi32.dll" (ByVal hKey As Long) As Long
Const HKEY_LOCAL_MACHINE = &H80000002
Const REG_SZ = 1
Sub ModifRegistro(HKLM As
Long, sPath As
String, sClave As
String, sValor As
String)
Dim lRet As Long, hKey As Long
lRet = RegCreateKey(HKLM, sPath, hKey)
lRet = RegSetValueEx(hKey, sClave, 0, REG_SZ, ByVal sValor, Len(sValor))
lRet = RegCloseKey(hKey)
End Sub
Private Sub Command1_Click()
Dim sSep As String
sSep = "Delimited(<img src='imagenes/smiles/rielagrima.png'
border='0' alt='rielagrima' />" ' aquí pones el
delimitador de campos
' opciones: Delimited(<img
src='imagenes/smiles/rielagrima.png' border='0' alt='rielagrima' />, Delimited(<img
src='imagenes/smiles/guinio.png' border='0' alt='guinio' />, Delimited(#)...
etc.
' para separación con tabulador = TabDelimited
ModifRegistro HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Jet\4.0\Engines\Text", "Format", sSep
MsgBox "Modificado el registro"
End SubUn saludo Nota: En las funciones API no debes hacer el salto de línea (no sé porque ha salido así, yo lo puse todo seguido) en todo caso, si quieres ponerlo en varias líneas utiliza el guión bajo ( _ ) al final de cada línea. La verdad es que es una chapuza de editor ¡casi todo ha salido mal! Habrá que quejarse a El Guille. [Editado: juanjoa, 25/04/2008 10:46:58] [juanjoa, 25/04/2008 10:53:15]
Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias. |
|
| ID | Asunto | Fecha | Nick | |
| 40799 | Re: lectura por linea de archivo plano (Resp: 40798) | 25/04/08 10:57 | Lestat2492 | | |
Muchisimas Gracias, y disculpa por molestarte tanto enque estoy aprendiendo y esto de manejar API's me resulta complicado de entender, hay algun tutarial o manual parapoder estudiar un poco el tema?.
Mil gracias el codigo.
Pablo.
Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias. |
|
| ID | Asunto | Fecha | Nick | |
| 40800 | Re: lectura por linea de archivo plano (Resp: 40799) | 25/04/08 11:06 | juanjoa | | |
Bueno, yo te recomiendo que te bajes la API-Guide (busca en Google), tiene bastantes funciones API y con ejemplos.
¿Entendiste el código? sobre todo la parte comentada, a mí me salen cosas raras.
Un saludo
Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias. |
|
| ID | Asunto | Fecha | Nick | |
| 40801 | Re: lectura por linea de archivo plano (Resp: 40800) | 25/04/08 12:13 | Lestat2492 | |  |
Si se entiende, muchisimas gracias.
Saludos,
Pablo.
Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias. |