Avatar billede md_craig Nybegynder
03. juni 2006 - 15:21 Der er 6 kommentarer og
1 løsning

Trim NonChars ud fra en Encoder (System.Text.Encoder)

Jeg har lavet en klasse med en række statiske metoder til at konvertere fra og til byte arrays...

Iblandt konverteringen af Ints, Longs, Shorts (Uints, U... osv)
Har jeg også en der konvertere en string... med en række overloads...

Når jeg så har et ByteArray som kunne indeholde følgende:

(140,167,189,122,166,0,0,0)

Så vil de tre 0'er ifl fx ASCII være "NUL" og altså ikke en desideret Char...

Dette skal jo trimmes væk... og det er jo egentlig nemt nok ud fra fx ASCII... da jeg i princippet kunne slå ASCII tabellen op og si hvilke værdier jeg skulle pille ud...

Men nu er der jo flere typer..
System.Text.ASCIIEncoding;
System.Text.UTF32Encoding;
System.Text.UTF7Encoding;
System.Text.UTF8Encoding;

Fx... hver har jo hver deres table...
Derfor vil jeg gerne benytte (hvis muligt) mit Encoding Object til at fjerne "Nonchars"

(Man skal jo også tage højde for at der kunne komme fremtidige encodings)
Avatar billede arne_v Ekspert
03. juni 2006 - 16:03 #1
Jeg vil mene at den rigtige måde er:

- brug Encoding GetString til at konvertere fra byte[] til string

- brug Char IsControl til at teste for om char's er non printable
Avatar billede md_craig Nybegynder
03. juni 2006 - 16:32 #2
Ahh... havde ikke lige luret den på char... so something like this would do:

string returnValue = "";
if (trim)
{
  char[] chars = encoding.GetString(data).ToCharArray();
  foreach (char c in chars)
  {
    returnValue += c;
  }
}
return returnValue;
Avatar billede arne_v Ekspert
03. juni 2006 - 17:33 #3
den kode gør ligesom ikke noget - vil du ikke teste på om det er en kontrol karakter ?
Avatar billede md_craig Nybegynder
03. juni 2006 - 18:02 #4
Jow... skulle lige til at skrive "Flot mig der" :P.. Doh...
Meningen var at foreach skulle være

foreach (char c in chars)
if(!Char.IsControl(c))
  returnValue += c;
Avatar billede arne_v Ekspert
03. juni 2006 - 18:12 #5
Det må være en god måde at gøre det på.
Avatar billede md_craig Nybegynder
09. juni 2006 - 20:52 #6
Smid et svar... :D
Avatar billede arne_v Ekspert
09. juni 2006 - 20:57 #7
kommer her
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester