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

    Il metodo String.IndexOf() non funziona come in vb6

    Da poco sto iniziando a studiare la programmazione in .net e sto cercando di trasformare alcune
    mie vecchie funzioni elaborate in visual basic 6, in c#.

    In questo caso sto cercando di modificare una funzione che mi restituiva un valore bool true
    utilizzando la funzione instr di visual basic.

    Praticamente la funzione era più o meno la seguente:

    stringa1= Request.ServerVariables("url") >>> (in c# HttpContext.Current.Request oppure RawUrl)

    if InStr(stringa1, "index.asp") then

    ...codice relativo da eseguire...

    end if

    Cercando su google ho trovato persone che dicevano in alcuni blog, o forum, che il metodo equivalente a instr per c# sia String.IndexOf().

    A quanto pare però questo metodo restituisce soltanto un valore numerico che sarebbe il risultato tra la sottrazione dei caratteri di una stringa ed un'altra, non un valore true,
    come invece eseguiva la funzione che voglio trasformare.

    Qualcuno di voi sa come usare meglio questo metodo, o se ce ne sono altri da suggerire?

    Grazie a tutti.

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    559
    beh basta verificare che il risultato di indexOf sia maggiore di -1! (-1=sottostringa non trovata)
    se nella vita avro avuto la possiblita di aiutare qualcuno non avro vissuto invano (E. Dikinson)

  3. #3
    Quindi come dovrei scrivere?

    if (String.IndexOf(stringa1, valore da trovare nella stringa) > 0 )

    ecc ecc?

    Ora provo così.

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    > -1

    in .net, gli indici di stringa partono da 0 e non da 1, perciò ti devi assicurare che il valore ottenuto sia maggiore di -1 (0 vuol dire trovato all'inizio stringa)
    Pietro

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    559
    ops.... ho dimenticato un uguale..
    cioe volevo scrivere >=0!
    se nella vita avro avuto la possiblita di aiutare qualcuno non avro vissuto invano (E. Dikinson)

  6. #6
    Ho prodotto lo script e non mi da nessun errore durante la compilazione,
    ma non mi stampa i risultati all'interno del label prescelto.

    Vi spiego cosa sto cercando di fare:
    Ho intenzione di far stampare all'interno di un label del codice html a seconda del nome della pagina (da qui l'utilizzo della funzione index.of),
    e quindi ho creato all'interno del file cs della masterpage il relativo codice:

    public class classeabc
    {

    public void funzione(object sender, HttpRequest e)
    {
    string stringa1= aaa;
    string stringa2= bbb;
    string stringa3= ccc;
    ecc ecc...

    stringa abc = e.RawUrl; (rawurl é il metodo dell'oggetto httprequest per ottenere l'url dopo il dominio)

    if (abc.IndexOf("default.aspx", 1) >= 0)
    {
    stringa 1 = aaa1
    }
    else if (abc.IndexOf("altrapagina.aspx", 1) >= 0)
    {
    stringa 2 = bbb2
    }
    else if (abc.IndexOf("altrapagina2.aspx", 1) >= 0)
    {
    stringa 3 = ccc3
    }

    string stringafinale = stringa1 + stringa2 + stringa3;
    label1.Text(stringafinale);
    }
    }

    E' più o meno così ma non mi restituisce nulla.

    Come posso fare per far creare il codice html in runtime direttamente
    dal file del codice .cs della pagina a seconda delle direttive prescelte?

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    559
    magari prova con

    abc.IndexOf("altrapagina.aspx") >=0

    e basta - senza il secondo parametro
    se nella vita avro avuto la possiblita di aiutare qualcuno non avro vissuto invano (E. Dikinson)

  8. #8
    Ancora non mi restituisce le stringhe html all'interno del label...Errori di compilazione non ce ne sono..

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    559
    prova a debuggare.
    considera che il metodo e' caseSensitive

    quindi se la pagina si chiama Default.aspx
    e tu cerchi default (con la d piccola) non la trovi!
    se nella vita avro avuto la possiblita di aiutare qualcuno non avro vissuto invano (E. Dikinson)

  10. #10
    Adesso ho effetuato una prova inserendo un label generico all'interno dalla pagina default.aspx
    ed inserendo nella relativa page_load del file default.aspx.cs il parametro

    label1.text="testo"

    e me lo restituisce..

    Non riesco a capire perché se faccio la stessa cosa all'interno del file default.master.cs

    non mi da nessun risultato.

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.