Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    [VB.Net] Metodo AppendFormat

    Buongiorno a tutti.

    Vorrei chiedervi di spiegarmi come funziona esattamente il metodo AppendFormat di una variabile StringBuilder.
    In particolare vorrei capire bene come funziona il primo parametro del metodo Format as String.
    Ad esempio in questo caso ho:
    codice:
    Dim strTit As New StringBuilder
    Dim fileSb As New StringBuilder(strFile)
    ...
    
    fileSb.AppendFormat("                   - {0}, ", sNomeTab)
    fileSb.AppendFormat("{0}, ", sNomeCampo)
    fileSb.AppendFormat("{0}, {1}", sNomeKey, Environment.NewLine)
    esattamente cosa indicano i valori "{0}, {1}" ?

    Grazie
    lady

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  2. #2
    Utente di HTML.it L'avatar di biste
    Registrato dal
    Apr 2001
    Messaggi
    877
    Ciao Lady,
    sono dei segnaposto per i valori che specificherai poi dopo la virgola, seguendo l'ordine con cui li hai dichiarati. Ti danno alcuni vantaggi: in primis di non dover fare il noioso concatenamento "..." & "..." e poi di poter riutilizzare lo stesso segnaposto se una variabile compare più volte nella stringa.

    codice:
    Dim s As String = String.Format("Il campo si chiama:{0}.{1}Il campo {0} vale: {2}.{1}", sNomeCampo, Environment.NewLine, valore)
    Console.WriteLine(s)
    Questo stamperà

    Il campo si chiamaippo.
    Il campo pippo vale: 0.


    Come vedi non è necessario StringBuilder, ma puoi usarlo anche tramite il metodo Format di String
    UGIdotNET
    Microsoft .NET MCAD
    C++, C#, VB6, VB.NET, ASP, ASP.NET
    SQL Server 2000

  3. #3
    Originariamente inviato da biste
    Ciao Lady,
    sono dei segnaposto per i valori che specificherai poi dopo la virgola, seguendo l'ordine con cui li hai dichiarati. Ti danno alcuni vantaggi: in primis di non dover fare il noioso concatenamento "..." & "..." e poi di poter riutilizzare lo stesso segnaposto se una variabile compare più volte nella stringa.

    codice:
    Dim s As String = String.Format("Il campo si chiama:{0}.{1}Il campo {0} vale: {2}.{1}", _
       sNomeCampo, Environment.NewLine, valore)
    Console.WriteLine(s)
    Questo stamperà

    Il campo si chiamaippo.
    Il campo pippo vale: 0.


    Come vedi non è necessario StringBuilder, ma puoi usarlo anche tramite il metodo Format di String
    Ciao biste

    ok, mi sembra abbastanza chiaro. ora vedo di capire come funziona direttamente sul mio progetto.
    Ho il problema che alla fine della costruzione della stringa vado a scrivere su un file .txt ma in certi casi non scrive un ciufolo!
    e credo dipenda dal concatenamento.
    Il codice me lo hai dato tu nell'altro 3D (Questo) quindi ora devo capire come modificarlo per far sì che funzioni.

    Grazie, sei sempre gentilissimo

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  4. #4
    una domanda.

    Se scrivo questa istruzione:
    codice:
    fileSb.AppendFormat("{0}, {1}, {2}", Environment.NewLine, _
                        sNomeTab, Environment.NewLine)
    il risultato su un file .txt è questo:
    , * Descrizione rete
    se invece scrivo così
    codice:
    fileSb.AppendFormat("{0}, {1}", sNomeTab, Environment.NewLine)
    il risultato su un file .txt è questo:
    * Descrizione rete
    perchè nel primo caso ho una virgola all'inizio della riga e nel secondo no? :master:
    Environment.NewLine non è un semplice accapo? :master:

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  5. #5
    Originariamente inviato da ladyBlu
    una domanda.

    Se scrivo questa istruzione:
    codice:
    fileSb.AppendFormat("{0}, {1}, {2}", Environment.NewLine, _
                        sNomeTab, Environment.NewLine)
    il risultato su un file .txt è questo:


    se invece scrivo così
    codice:
    fileSb.AppendFormat("{0}, {1}", sNomeTab, Environment.NewLine)
    il risultato su un file .txt è questo:


    perchè nel primo caso ho una virgola all'inizio della riga e nel secondo no? :master:
    Environment.NewLine non è un semplice accapo? :master:
    si ma tu stampi accapo , 1,2
    e la virgola che metti tu dopo {0} lui la stampa..

  6. #6
    Originariamente inviato da kentaromiura
    si ma tu stampi accapo , 1,2
    e la virgola che metti tu dopo {0} lui la stampa..
    ma cavolo, allora come devo fare?
    a me serve quell'accapo. mi dici come evito che mi stampa quella virgola?

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  7. #7
    fileSb.AppendFormat("{0} {1} {2}", Environment.NewLine, _
    sNomeTab, Environment.NewLine)


  8. #8
    Originariamente inviato da kentaromiura
    fileSb.AppendFormat("{0} {1} {2}", Environment.NewLine, _
    sNomeTab, Environment.NewLine)

    ah! basta che tolgo la virgola!?
    eheh... che fagiana che sono!
    ora ho capito bene come funziona sto benedetto AppendFormat

    grazie kenta, ora va benone

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  9. #9
    Utente di HTML.it L'avatar di biste
    Registrato dal
    Apr 2001
    Messaggi
    877
    Originariamente inviato da kentaromiura
    fileSb.AppendFormat("{0} {1} {2}", Environment.NewLine, _
    sNomeTab, Environment.NewLine)
    In realtà uno dei vantaggi che dicevo di utilizzare questa sintassi è di poter riutilizzare il segnaposto, quindi questo che ha scritto kentaro potrebbe essere più correttamente scritto così:

    codice:
    fileSb.AppendFormat("{0} {1} {0}", Environment.NewLine, sNomeTab)
    UGIdotNET
    Microsoft .NET MCAD
    C++, C#, VB6, VB.NET, ASP, ASP.NET
    SQL Server 2000

  10. #10
    Originariamente inviato da biste
    In realtà uno dei vantaggi che dicevo di utilizzare questa sintassi è di poter riutilizzare il segnaposto, quindi questo che ha scritto kentaro potrebbe essere più correttamente scritto così:

    codice:
    fileSb.AppendFormat("{0} {1} {0}", Environment.NewLine, sNomeTab)
    ragazzi siete meglio dell'msdn
    là sopra non ho trovato una mazza


    comunque, certo biste, è giusto. in questa istruzione {0} identifica Environment.NewLine quindi non è necessario ripetere nuovamente Environment.NewLine come terzo parametro.
    Fantastico, ora ottimizzo pure questa cosa qua


    Grazie mille ragazzi, siete davvero due angeli

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

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.