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

    [VB.NET] trovare lunghezza di una stringa

    Data una struttura tipo
    codice:
    Structure RecordInput
     <VbFixedString(50)> Dim Campo1 As String
     <VbFixedString(25)> Dim Campo2 As String
     <VbFixedString(10)> Dim Campo3 As String
    End Structure
    Dim RI As RecordInput
    Come posso trovare la lunghezza di un campo a scelta?
    Per esempio per RI.Campo2 devo riuscire a trovare "25"

    Grazie

  2. #2
    UP pls...
    se non trovo una soluzione in breve tempo mi tocca dover rifare il programma in vb6

  3. #3
    Utente di HTML.it L'avatar di biste
    Registrato dal
    Apr 2001
    Messaggi
    877
    Secondo me ragionare per stringhe a lunghezza fissa non è corretto, visto che non esistono più.
    Quell'attributo come hai visto serve per marshaling con VB6 ma non ha molto senso in .NET

    Potresti dichiarare le stringhe ad esempio così
    codice:
    Dim s As New String(" "c, 25)
    per creare una stringa di una certa lunghezza.

    Se vuoi mantenere la soluzione con gli attributi allora puoi ottenerli e sapere cosa contengono utilizzando reflection e in particolare

    Esempio
    codice:
    Dim RI As RecordInput
    For Each fi As FieldInfo In RI.GetType().GetFields()
                Console.WriteLine(DirectCast(fi.GetCustomAttributes(False)(0), VBFixedStringAttribute).Length)
    Next
    UGIdotNET
    Microsoft .NET MCAD
    C++, C#, VB6, VB.NET, ASP, ASP.NET
    SQL Server 2000

  4. #4
    Grazie mille!
    Purtroppo sono obbligato ad usare gli attributi. Devo leggere un file in modalità Random e il tracciato è di quasi 200 campi! Per questa volta ho trovato una soluzione alternativa: prima di iniziare a scorrere il file leggo un record in modo da riempire tutti i campi; a questo punto Len(RI.Campo2) mi restituisce la lunghezza del contenute che equivale all'attributo. La prossima volta tengo in considerazione il tuo esempio, anche se non mi è chiara una cosa: in questo modo tu visualizzi tutti gli attributi, ma a me interessa trovare l'attributo del campo attraverso il suo nome...

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.