Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    VB6 cercare stringhe

    Ciao.
    Devo controllare l'esistenza di una stringa all'interno di altre stinghe separate fra loro(n righe) in VB6.
    Questo, lo devo fare per ogni righa, fasciendo un Loop, in vb.
    Grazie 1000.

  2. #2
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    la funzione instr ti dice se una stringa esiste all'interno di un'altra
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

  3. #3

    cercare stringa vb6

    ciao
    la stringa cercata po essere uguale o piccola della strigha in cui vado a cercare.
    io ho fatto una cosa del genere po andare bene?

    For i=0 To UBound()
    n=0
    If UCase$(Descrizione_Bom(i))<>"" Then
    Do Until "Descrizione_Text1(n)" Like "*Descrizione_Bom(i)*"
    Codice_Bom(i) = Codice_Text1(n)
    n = n + 1
    Lopp
    Grazie

  4. #4
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    no, da quello che vedo mancano le basi....

    Non si capisce quello che devi fare.....
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

  5. #5

    cercare strighe vb6

    Ciao
    il file dove vado a cercare la stringa é fatto cosi:
    70781312;INTEGRATO EEPROM 8KX8 24C64 ;00001,2163
    70782153;BC846 Transistor NPN SOT-23 ;00000,0090
    70782154;TRANSISTOR BC856B BOX SMD SOT23 ;00000,0090

    la stringa cercata é fatta cosi:
    bc864 tansistor bc box smd sot23
    Allora devo cercare la stringa e quando lo trovo scrivo il suo codice:70782154.

    Grazie

  6. #6

    Re: cercare stringa vb6

    Originariamente inviato da moussa
    ciao
    la stringa cercata po essere uguale o piccola della strigha in cui vado a cercare.
    io ho fatto una cosa del genere po andare bene?

    For i=0 To UBound()
    n=0
    If UCase$(Descrizione_Bom(i))<>"" Then
    Do Until "Descrizione_Text1(n)" Like "*Descrizione_Bom(i)*"
    Codice_Bom(i) = Codice_Text1(n)
    n = n + 1
    Lopp
    Grazie
    Ciao !
    Cosi' non funziona, per una serie di motivi, il principale dei quali e' che scrivi il NOME della variabile DENTRO la stringa letterale cercata con LIKE...
    Non va, eventualmente sarebbe: ... Like "*" & Descrizione_Bom(i) & "*".

    Poi fai un po' di confusione con gli indici (i, n)... oltretutto se cerchi UNA descrizione la variabile Descrizione_Text1(i) non dovrebbe essere un vettore...

    Prova cosi':
    codice:
    Codice=""
    If Descrizione_Bom<>"" Then
      For i=0 To UBound(Descrizione_Text1)
        If Ucase$(Descrizione_Text1(i))  Like ("*" & Descrizione_Bom & "*") Then
          Codice = Left$(Descrizione_Text1(i), Instr(Descrizione_Text1(i), ";") -1)
          Exit For
        End If
      Next
    End if
    Sarebbe una buona idea inglobare il codice in una funzione apposita, per rendere il tutto un po' piu' strutturato...
    IceCube_HT (VB6 fan Club)

  7. #7

    cercare stringa vb6

    Ciao e grazie per la risposta.
    Ho provato a adattare il tuo codice al mio, ma nn va, comunque la descrizione è un vettore ecco perche ho fatto un loop di "i" e uno di "n", perche la descrizione è un vettore e ci sono tanti righe.

    For i=0 To Puntatore_campi_Bom-1
    n=0
    If UCasae$(Descrizione_Bom(i))<>"" Then
    If Ucase$(Descrizione_Text1(n)) Like ("*" & Descrizione_Bom(i) & "*") Then
    Codice = Codice_Text1(n) 'assegnare il codice i del Text1 della n-esima riga alla riga i- ' esima del Bom
    Exit For
    End If
    Next
    End if
    mi lo controlli perfavore.
    Grazie

  8. #8

    Re: cercare stringa vb6

    Originariamente inviato da moussa
    Ho provato a adattare il tuo codice al mio, ma nn va, comunque la descrizione è un vettore ecco perche ho fatto un loop di "i" e uno di "n", perche la descrizione è un vettore e ci sono tanti righe.
    Allora devi fare due cicli For, uno dentro all'altro...

    Pero', prima, dimmi se ho capito bene la situazione, senno' andremo avanti all'infinito

    1) Hai un certo numero di righe, formattate come segue:
    70782154;TRANSISTOR BC856B BOX SMD SOT23 ;00000,0090
    memorizzate sotto forma di vettore di nome Descrizione_Text1()

    2) Hai delle descrizioni di componenti, tipo:
    TRANSISTOR BC856B BOX SMD SOT23
    memorizzate come vettore di nome Descrizione_Bom()

    3) Vuoi cercare nel vettore Descrizione_Text1() la presenza di Descrizione_Bom() ed estrarne il codice corrispondente, che si trovera' all'inizio di Descrizione_Text1() separato dal resto della riga da un punto e virgola.

    4) Vuoi ripetere il procedimento per tutte le descrizioni dei componenti (e quindi avrai bisogno anche di un VETTORE di codici, delle stesse dimensioni di Descrizione_Bom(), dove memorizzare il codice di ciascun componente.

    E' questa la situazione che ti si presenta ?

    In questo caso:
    codice:
       Dim i As Integer, j As Integer
       For j = 0 To UBound(Descrizione_Bom)
          If Descrizione_Bom(j) <> "" Then
            For i = 0 To UBound(Descrizione_Text1)
              If UCase$(Descrizione_Text1(i)) Like ("*" & UCase$(Descrizione_Bom(j)) & "*") Then
                'il codice e' la parte sinistra della riga, fino al carattere precedente il ';'
                Codice(j) = Left$(Descrizione_Text1(i), InStr(Descrizione_Text1(i), ";") - 1)
                Exit For  'trovato il codice, esce dal ciclo interno
              End If
            Next
          End If
       Next
    Ovviamente PRIMA di questo devi aver dichiarato da qualche parte il vettore dei codici con qualcosa come:
    codice:
    Dim Codici(UBound(Descrizione_Bom)) As String
    IceCube_HT (VB6 fan Club)

  9. #9

    cercare stringa in vb6

    Ciao
    Bravissimo è quello che cerco di fare.
    grazie

  10. #10

    Re: cercare stringa in vb6

    Originariamente inviato da moussa
    Ciao
    Bravissimo è quello che cerco di fare.
    grazie
    Pero' se controlli il codice che hai proposto per ultimo, vedrai che NON hai fatto DUE loop, ma ne hai lasciato UNO SOLO, usando DUE indici !!!!??? VVoVe:

    Poi: "me lo controlli ?", posso anche farlo, ma che ne dici di far lavorare prima le "macchine" ?
    (Il codice che hai proposto non e' passato per il compilatore, vero ? )
    IceCube_HT (VB6 fan Club)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.