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

funcion Instr

Estas en el tema de funcion Instr en el foro de Visual Basic clásico en Foros del Web. Buenos dias, a ver si alguien me puede ayudar, necesito que la variable lotenew obtenga de el siguiente fichero el ultimo numero, en este caso ...
  #1 (permalink)  
Antiguo 19/01/2010, 07:57
 
Fecha de Ingreso: noviembre-2007
Mensajes: 8
Antigüedad: 16 años, 5 meses
Puntos: 0
funcion Instr

Buenos dias, a ver si alguien me puede ayudar, necesito que la variable lotenew obtenga de el siguiente fichero el ultimo numero, en este caso el 928.

!WV63|WW60|WW61|WW68|GT00|LX02
1|3|0|928

Sería un fichero de texto con estas 2 lineas, y yo necesitaria coger el 928 e igualarlo a la variable lotenew, creo que se hace con la funcion Instr, pero no estoy seguro de como se hace ya que nunca la habia usado hasta ahora. Gracias.
  #2 (permalink)  
Antiguo 19/01/2010, 08:47
 
Fecha de Ingreso: enero-2007
Ubicación: 9 de julio
Mensajes: 111
Antigüedad: 17 años, 3 meses
Puntos: 2
Respuesta: funcion Instr

Hola. Mira lo que se me ocurre es hacerlo en dos partes. Una que te busca el ultimo separador y la otra que asigna.
espero te sirva


Código:
Private Sub Command1_Click()
   Dim LoteNew As String, Aux As Integer
   'leo el dato (en este caso lo asigne, pero se supone lo debes leer del fichero)
   LoteNew = "!WV63|WW60|WW61|WW68|GT00|LX021|3|0|928"
   
   'Busco la posicion donde esta el ultimo separador |
   Aux = MyInstrLast(LoteNew, "|")
   'recorto
   LoteNew = Mid(LoteNew, Aux + 1, Len(LoteNew) - Aux)
End Sub
Private Function MyInstrLast(ByVal pstrText As String, ByVal pstrSearch As String) As Integer
    Dim pos As Integer, Aux As Integer, ctrl1 As Integer
    pos = 0
    Do
        Aux = InStr(pos + 1, UCase(pstrText), UCase(pstrSearch))
        If Aux <> 0 Then pos = Aux
    Loop Until Aux = 0
    MyInstrLast = pos
End Function
  #3 (permalink)  
Antiguo 19/01/2010, 08:55
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: funcion Instr

Podría ser:
Código vb:
Ver original
  1. Dim Texto As String
  2.  
  3. Texto = "!WV63|WW60|WW61|WW68|GT00|LX02 1|3|0|928"
  4. MsgBox Right(Texto, Len(Texto) - InstrRev(Texto, "|"))
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #4 (permalink)  
Antiguo 20/01/2010, 02:28
 
Fecha de Ingreso: noviembre-2007
Mensajes: 8
Antigüedad: 16 años, 5 meses
Puntos: 0
cargar fichero de una ruta

Hola, como puedo cargar un fichero de ruta, seria un fichero txt, y despues necesitaria coger un dato de la segunda fila, el fichero tiene 2 filas, seria algo asi y necesitaria coger el ultimo numero (928).

!WV63|WW60|WW61|WW68|GT00|LX02
1|3|0|928

gracias
  #5 (permalink)  
Antiguo 20/01/2010, 03:22
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 9 meses
Puntos: 29
Respuesta: cargar fichero de una ruta

Código vb:
Ver original
  1. Function NumeroFinal(Fichero As String) As Integer
  2.   Dim NumFichero As Integer
  3.   Dim Linea As String
  4.   NumFichero = FreeFile
  5.   Open Fichero For Binary As NumFichero
  6.     Linea = Input(LOF(NumFichero), #NumFichero)
  7.   Close NumFichero
  8.   NumeroFinal = Right$(Linea, Len(Linea) - InStrRev(Linea, "|"))
  9. End Function


Fichero="c:\valores.txt"

ValorBuscado = NumeroFinal(Fichero)
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!

Etiquetas: funcion
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 06:56.