Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    24

    [VB6] ricerca stringhe in listbox

    Ciao ragazzi sono qui a chiedervi aiuto x una cosa a voi banale...
    devo eseguire una ricerca ed effettuare una modifica a una stringa di cui conosco le parole ma non la formattazione...
    mi spiego in poche parole la mia stringa conterra' sempre "* label format 2" pero' con lettere a volte maiuscole e avolte no inoltre gli spazi tra loro son sempre diversi. io devo sostituire con un command button quel 2 in uno 0....
    grazie mille a chi mi aiuta.
    il linguaggio è visual basic

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480

    Moderazione

    Originariamente inviato da Moro_80
    il linguaggio è visual basic
    Quale versione? Hai letto il Regolamento di quest'area?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    24
    il linguaggio è visual basic 6
    scusate se non l'ho segnato prima...

  4. #4

    Re: [VB6] ricerca stringhe in listbox

    Originariamente inviato da Moro_80
    Ciao ragazzi sono qui a chiedervi aiuto x una cosa a voi banale...
    devo eseguire una ricerca ed effettuare una modifica a una stringa di cui conosco le parole ma non la formattazione...
    mi spiego in poche parole la mia stringa conterra' sempre "* label format 2" pero' con lettere a volte maiuscole e avolte no inoltre gli spazi tra loro son sempre diversi. io devo sostituire con un command button quel 2 in uno 0....
    grazie mille a chi mi aiuta.
    il linguaggio è visual basic
    In questi casi bisogna formalizzare bene le condizioni per la sostituzione, oltre a studiarsi un po' il potente operatore LIKE !

    Se ho capito bene, si dovra' sostituire il 2 con uno 0, SE la stringa contiene:
    - la parola "label" (maiuscola o minuscola, non importa)
    - la parola "format" (idem)
    - uno o piu' spazi di separazione tra le parole...

    si puo' fare cosi':
    codice:
       If LCase(s) Like "*label *format *#" Then
          s = Replace(s, "2", "0", , 1)   ' sostituisce solo il PRIMO 2 che incontra
       End If
    Ciao !
    IceCube_HT (VB6 fan Club)

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    24
    innanzitutto grazie mille x la risposta icecube_HT
    ho solo il problema che non saprei come inserirla nel mio progetto...
    allora io apro un file con questo codice:
    Private Sub Command1_Click()
    Lista.Clear
    Percorso_file.Caption = ""
    Label4.Caption = ""
    On Error GoTo fine
    CommonDialog1.Filter = "File di test |*.cl*"
    CommonDialog1.FilterIndex = 1
    CommonDialog1.CancelError = False
    CommonDialog1.ShowOpen
    NomeFile = CommonDialog1.FileName
    Open NomeFile For Input As #1
    Do While Not EOF(1)
    Line Input #1, textline
    Lista.AddItem textline
    Loop
    Percorso_file.Caption = CommonDialog1.FileName
    Label4.Caption = Lista.ListCount
    Close #1
    Command3.Enabled = True
    Exit Sub
    fine:
    Close #1
    MsgBox Err.Description
    End Sub

    poi vorrei che con un comand button mi facesse quello che vi ho richiesto..
    io ho provato cosi' ma non va...

    Private Sub Command3_Click()
    For i = 0 To Lista.ListCount - 1
    If LCase(i) Like "*label *format *#" Then
    i = Replace(i, "2", "0", , 1)
    MsgBox "ho tolto il 2"
    End if
    End sub

    lo deve fare solo su quella stringa che comunque c'è sempre nel file...grazie

  6. #6
    Originariamente inviato da Moro_80
    innanzitutto grazie mille x la risposta icecube_HT
    ho solo il problema che non saprei come inserirla nel mio progetto...
    allora io apro un file con questo codice:
    Private Sub Command1_Click()
    Lista.Clear
    Percorso_file.Caption = ""
    Label4.Caption = ""
    On Error GoTo fine
    CommonDialog1.Filter = "File di test |*.cl*"
    CommonDialog1.FilterIndex = 1
    CommonDialog1.CancelError = False
    CommonDialog1.ShowOpen
    NomeFile = CommonDialog1.FileName
    Open NomeFile For Input As #1
    Do While Not EOF(1)
    Line Input #1, textline
    Lista.AddItem textline
    Loop
    Percorso_file.Caption = CommonDialog1.FileName
    Label4.Caption = Lista.ListCount
    Close #1
    Command3.Enabled = True
    Exit Sub
    fine:
    Close #1
    MsgBox Err.Description
    End Sub

    poi vorrei che con un comand button mi facesse quello che vi ho richiesto..
    io ho provato cosi' ma non va...

    Private Sub Command3_Click()
    For i = 0 To Lista.ListCount - 1
    If LCase(i) Like "*label *format *#" Then
    i = Replace(i, "2", "0", , 1)
    MsgBox "ho tolto il 2"
    End if
    End sub

    lo deve fare solo su quella stringa che comunque c'è sempre nel file...grazie
    La via piu' semplice e' (anziche' in un CommButton separato che deve ri-scandire tutta la lista) farlo in lettura dal file:

    tra le righe
    codice:
    Line Input #1, textline
    Lista.AddItem textline
    basta inserire
    codice:
    Line Input #1, textline
    If LCase(textline) Like "*label *format *#" Then
      textline = Replace(textline, "2", "0", , 1)
    End If 
    Lista.AddItem textline
    Semplice, no ?
    IceCube_HT (VB6 fan Club)

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    24
    col metodo da te suggerito funziona alla grande tranne nel caso *labelformat2
    ma non capisco come mai...
    mi posteresti anche nella casistica di associarlo ad un command button ?
    ti ringrazio anticipatamente...
    bye

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Perche' si era capito che c'era almeno uno spazio ... altrimenti

    Like "*label*format*#"

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    24
    infatti ci ero arrivato giusto ora..cmq grazie lostesso oregon!

    è solo per associare questa funzione ad un command button che non combino...

  10. #10
    Originariamente inviato da Moro_80
    infatti ci ero arrivato giusto ora..cmq grazie lostesso oregon!
    è solo per associare questa funzione ad un command button che non combino...
    Non ho VB sottomano, in questo momento, potrebbe essere cosi'...
    codice:
    Private Sub Command3_Click()
      Dim i As Integer, s As String 
      For i = 0 To Lista.ListCount - 1 
        s   = Lista.ListItem(i)
        If LCase(s) Like "*label *format *#" Then
           Lista.ListItem(i) = Replace(s, "2", "0", , 1) 
           MsgBox "ho tolto il 2"
        End if
    End sub
    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.