elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  leer datos en archivo secuencial
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: leer datos en archivo secuencial  (Leído 6,558 veces)
corlo

Desconectado Desconectado

Mensajes: 120


Ver Perfil
Re: leer datos en archivo secuencial
« Respuesta #10 en: 27 Noviembre 2021, 10:14 am »

gracias serapis

lo he podido descargar

lo he mirado por encima y funciona bien ya mirare los detalles con mas calma


muchas gracias


En línea

corlo

Desconectado Desconectado

Mensajes: 120


Ver Perfil
Re: leer datos en archivo secuencial
« Respuesta #11 en: 30 Diciembre 2021, 18:48 pm »

Hola serapis


fataria buscar por articulo, he mirado varias cosas y no hay manera


del primer programa


gracias


En línea

Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.391


Ver Perfil
Re: leer datos en archivo secuencial
« Respuesta #12 en: 31 Diciembre 2021, 17:36 pm »

Si con 'el primer programa', te refieres a la primera versión en zip que subí, sucede lo mismo que te comentaba en el último...

El registro tiene para el campo artículo un valor de tipo string de tamaño 'fijo' (...as string *12), es decir se rellena con espacios al final si el artículo no completa el tamaño del campo.

Hay esto en el código:
Código
  1.        ...
  2.        Get #Canal, ptr, Articulo
  3.  
  4.        If (LCase$(Articulo) = Producto) Then
  5.        ...
  6.  

Falta por tanto eliminar los espacios, tan simple como cambiarlo por esto:
Código
  1.        ...
  2.        Get #Canal, ptr, Articulo
  3.  
  4.        If (LCase$(trim$(Articulo)) = Producto) Then
  5.        ...
  6.  

En cualquier caso, debes utilizar las herramientas de debug, que el IDE ofrece (El IDE no sirve meramente para dejar colorido el texto, tiene muchas herramientas interesantes)...
Si revisas el contenido del valor 'Producto' justo donde se hace la comparación, verás que es: "alicates"
...y de igual modo con la expresión 'LCase$(Articulo)', verías que es:  "alicates     "
...se observa que en efecto se diferencian en los espacios, luego la solución aparece obvia, sin entrar en pánico ni revisiones complejas.
Puedes poner un simple punto de parada en dicha línea (pulsa la tecla F9 encima de dicha línea en tu código y ejecuta el programa (estamos en modo diseño, ahí se interpreta)... al llegar  a esa línea con un punt de parada, el intérprete se para en dicha línea, teniendo ahí el cursor, puedes hacer desde un simple:

Código
  1. debug.print "." & articulo & "." , "." & lcase$(articulo) & "."
  2. ' los puntos son solo para determinar claramente donde empiea y termina el string, lo espacios pueden pasar desapercibido...
  3.  
Sea pegando está línea justo antes de esa y ejecutándola, o abriendo la ventana de pruebas (inmediato) CTRL+G (o buscarla desde el menú --> Ver ...).
También simplemente seleccionado una expresión y desde el: 'menú --> debug --> inspeccion rapida', etc... mejor si se edita el propio menú para tenerlo en el menú contextual.


Por último se te señalo que la comparación, además de no ignorar espacios, exige exactitud, de ahí que incluso sea preferible hacer una búsqueda parcial...
...también sucede que la búsqueda se realiza desde el comienzo, luego, si encuentra el primer registro que cumple la condición y sale... una nueva búsqueda (sin más), para lo mismo volverá a buscar desde el inicio y volverá a encontrar exactamente el mismo registro (si no se eliminó y lo que se busca es lo mismo que antes)...
pero... en el último programa (que subí)... la capacidad para seguir buscando desde el previo encontrado, está implementadaasí como una búsqueda parcial, (podrás ver en el menú que aparece un 'buscar siguiente', que admeás se activa o desactiva conforme la posibilidad de buscar un siguiente exista)...
La búsqueda parcial de un artículo tira del operador 'like' (que es la forma de usar expresiones regulares en vb6), por lo que te conviene que si pasas al primer proyecto, al menos incluyas los cambios acometidos a este respecto en el segundo (en el primero solo se dejó 'insinuado' dicha posibilidad, completarlo quedaba a tu cargo, sin embargo en el segundo lo dejé hecho).
En línea

corlo

Desconectado Desconectado

Mensajes: 120


Ver Perfil
Re: leer datos en archivo secuencial
« Respuesta #13 en: 31 Diciembre 2021, 18:37 pm »

muchas gracias serapis

en el ejemplo que tu ponias a la hora de introducir los datos no salia bien

pero al hacer una entrada de facturacion nueva aqui introduzco los datos y ahora si que sale



Código
  1.  
  2. ...
  3.        Get #Canal, ptr, Articulo
  4.  
  5.        If (LCase$(trim$(Articulo)) = Producto) Then
  6.        ...
  7.  
  8.  





habia probado de varias maneras y no habia manera de que saliese


muchas gracias





que tengas un buen año 2022


Gracias


En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines