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

    [VB08]'I' Non dichiarato

    Ciao,non riesco a capire perchè il compilatore mi dice "I non dichiarato" eppure nel codice mi sembra di aver dichiarato tutto:
    codice:
        Function ListIsIn(ByVal lst As ListBox, ByVal zString As String) As Boolean
            On Error Resume Next
            For i = 0 To lst.Items.Count
                If lst.Items(i) = zString Then ListIsIn = True : GoTo grr
            Next i
            ListIsIn = False
            MsgBox("nope", vbOKOnly)
            Exit Function
    grr:
            lst.SelectedIndex = (i) 'quì da l'errore
    
        End Function
    L'errore preciso è questo:

    Error 1 Name 'i' is not declared.

  2. #2
    Ciao. Hai due possibilità:
    La prima:
    codice:
     Dim i as [tuo tipo]
    oppure:
    codice:
     for i as [tuo tipo] = ...
    Spero d'esserti stato d'aiuto
    Iscrivetevi su:
    www.studentsmeeting.forumitalian.com!! E' gratis e utile!
    C'è anche la sezione "compiti"!!!!!!!!!

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    455
    Non è che mi puoi/potete dire quale tipo mettere a Dim i As "tipo" La funzione servirebbe per cercare oggetti in una lista,io ho provato parecchi tipi ma niente,se metto string o boolean l'errore si sposta sul for i...

    edit: Ok,ho risolto ho messo un Dim i as object solo che però quando faccio ricerca non riesco a capire perchè mi trova solo due righe:

    CONDITIONS:

    e ACTIONS:

    diciamo che mi trova solamente le righe in maiuscolo...come risolvo?

  4. #4
    Mi pare ovvio che tu debba mettere Integer, dal momento che stai ciclando su una proprietà che ha un indice Integer.
    P.S.: VB.NET non è VB6, non dovresti usare né GoTo, né On Error né MsgBox.
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    455
    Facendo come dici tu però poi mi da errore il pulsante di ricerca che ha il seguente codice:
    codice:
            ListIsIn(ListBox1, UCase(RichTextBox3.Text))
            RichTextBox3.Text = ""
    l'errore è questo:

    Cast non valido dalla stringa "USE CAPS " al tipo 'Integer'.

  6. #6
    Non ho capito dove hai messo Integer... io intendevo nella dichiarazione di i:
    codice:
    Dim i As Integer
    .
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    455
    Lo so,infatti io l'ho messo alla dichiarazione dell' i solo che ora mi da quest'altro errore quando premo il tasto search (che richiama la funzione ListIsIn)

    Questo è il codice intero della funzione:

    codice:
        Function ListIsIn(ByVal lst As ListBox, ByVal zString As String) As Boolean
    
            Dim i As Integer
    
            For i = 0 To lst.Items.Count
                If lst.Items(i) = zString Then ListIsIn = True : GoTo grr
            Next i
            ListIsIn = False
    
            Exit Function
    
            lst.SelectedIndex = (i)
    
        End Function

  8. #8
    Su che riga ti dà l'errore?
    Amaro C++, il gusto pieno dell'undefined behavior.

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    455
    Quel codice è tutto giusto l'errore ricade sul pulsante che richiama la funzione:
    codice:
        Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click
            ListIsIn(ListBox1, UCase(RichTextBox3.Text))
            RichTextBox3.Text = ""
        End Sub
    L'errore è questo:

    Cast non valido dalla stringa "MESSAGE" al tipo 'Integer'.

    (MESSAGE è il nome che ho usato per la ricerca)

  10. #10
    Utente di HTML.it L'avatar di FETBIG
    Registrato dal
    Jul 2008
    Messaggi
    29
    Ciao, se ho ben capito il problema:
    - dichiara il tuo I come integer;
    - dove ti da errore hai messo l'I fra parentesi, prova a toglierle;
    - per paragonare le stringhe convertile entrambe in minuscolo (toLower) o maiuscolo (toUpper) (es.: if lst.items(i).tostring.toLower = zstring.toLower).

    Fammi sapere ciao.
    La coscienza al di sopra di ogni azione e di ogni parola

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.