Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    c# togliere il carattere terminatore \0 da una stringa

    se stringa != null e stringa termina con \0, togliere \0

    mi aiutate a fare questo in c#
    Pietro

  2. #2
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    La logica dovrebbe essere:

    codice:
    - se stringa non e' null
       - array di chars = stringa.tochararray
       - se array(ubound(array))="\" ed array(ubound(array)-1)="0"
         - ciclo da 1 ad ubound(array)-2
           nuovastringa.append(array(indiceciclo))

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da djciko
    La logica dovrebbe essere:

    codice:
    - se stringa non e' null
       - array di chars = stringa.tochararray
       - se array(ubound(array))="\" ed array(ubound(array)-1)="0"
         - ciclo da 1 ad ubound(array)-2
           nuovastringa.append(array(indiceciclo))

    if (!string.IsNullOrEmpty(s) && s.EndsWith("\0")) s = s.Substring(0, s.Length - 1);

    Diavolo, non conosco il c# e per una volta che chiedo un po' di aiuto, ... sono costretto a farmelo da solo
    Pietro

  4. #4
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Originariamente inviato da pietro09

    if (!string.IsNullOrEmpty(s) && s.EndsWith("\0")) s = s.Substring(0, s.Length - 1);

    Diavolo, non conosco il c# e per una volta che chiedo un po' di aiuto, ... sono costretto a farmelo da solo
    non ero sicuro di .EndsWith, c# per me è un conoscente, esattamente come per te

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    59
    guarda che in c# le stringhe non sono mai terminate con \0..

  6. #6
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Originariamente inviato da bitman
    guarda che in c# le stringhe non sono mai terminate con \0..
    :master: che intendi ?

  7. #7
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da djciko
    :master: che intendi ?
    Intende quello che ha detto ma evidentemente sbaglia

    string s = "012" + "\0";

    dim s as string = "012" & chr(0)


    Pietro

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    59
    volevo dire che non ha alcun senso avere una stringa con un '\0' in fondo!
    le stringhe null-terminated si usano nel C e nel C++ ma non in C#.
    quindi se ti poni il problema di togliere lo zero dal fondo significa che il vero problema è a monte.
    da dove vengono quelle stringhe?

  9. #9
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da bitman
    volevo dire che non ha alcun senso avere una stringa con un '\0' in fondo!
    le stringhe null-terminated si usano nel C e nel C++ ma non in C#.
    quindi se ti poni il problema di togliere lo zero dal fondo significa che il vero problema è a monte.
    da dove vengono quelle stringhe?
    Adesso il ragionamento fila di più. Mi spiego. Ho trovato in rete un vecchio codice c# che estrae i metadati dalle immagini. Ieri mi sono accorto che il le stringhe risultato contenevano un carattere strano alla fine. Indago e trovo che è proprio \0. E' naturale che c'è un errore nel codice ed è proprio quello che volevo correggere.
    Da qui quella strana domanda

    ciao
    Pietro

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.