Autor |
Beitrag |
C#
      
Beiträge: 561
Erhaltene Danke: 65
Windows 10, Kubuntu, Android
Visual Studio 2017, C#, C++/CLI, C++/CX, C++, F#, R, Python
|
Verfasst: So 16.10.11 21:05
Abend,
ich habe mal eine Frage zu den Integer-Werten einzelner Chars.
char c = '•'; und ich frage mich wie ich da den entsprechenden ASCII-Wert (hier: 7) bekomme. Denn wenn ich int x = Convert.ToInt32(c); mache, bekomme ich den Unicode-Wert (8226), oder was auch immer für ein Wert.
Kann mir jemand helfen? Ich brauche das um unerlaubte Zeichen aus einem string zu löschen (0-25 in der ASCII-Tabelle).
_________________ Der längste Typ-Name im .NET-Framework ist: ListViewVirtualItemsSelectionRangeChangedEventHandler
|
|
Kha
      
Beiträge: 3803
Erhaltene Danke: 176
Arch Linux
Python, C, C++ (vim)
|
Verfasst: So 16.10.11 21:10
An Stelle 7 ist ein Steuerzeichen, normalerweise ohne visuelle Repräsentation. Wo soll der Zusammenhang zum Bullet Point sein  ?
_________________ >λ=
|
|
C# 
      
Beiträge: 561
Erhaltene Danke: 65
Windows 10, Kubuntu, Android
Visual Studio 2017, C#, C++/CLI, C++/CX, C++, F#, R, Python
|
Verfasst: So 16.10.11 21:45
Es hat nicht direkt mit '•' zu tun, sondern will ich prüfen, ob im string eines der ersten 25 Zeichen des ASCII Codes vorhanden ist.
//Edit:
Hab dich falsch verstanden. Wenn du auf der Tastatur Alt+7 drückst, erhälst du das Zeichen: "•". Und Alt dient hier doch als Shortcut für die ASCII-Tabelle oder irre ich mich? man hält Alt gedrückt und tippt dann den ASCII-Code ein und erhält dann das zugeordnete Zeichen.
//Edit2:
Habe gerade entdeckt, dass '•' den ASCII-Wert 149 ergibt. Jetzt ergibt die ganze Sache noch weniger Sinn...
www.amathis.ch/ASCII-Tabelle.pdf
_________________ Der längste Typ-Name im .NET-Framework ist: ListViewVirtualItemsSelectionRangeChangedEventHandler
|
|
Trashkid2000
      
Beiträge: 561
Erhaltene Danke: 137
|
Verfasst: Mo 17.10.11 19:55
C# hat folgendes geschrieben : | Habe gerade entdeckt, dass '•' den ASCII-Wert 149 ergibt. Jetzt ergibt die ganze Sache noch weniger Sinn... |
Das ergibt wirklich keinen Sinn, da die Ascii-Tabelle (bzw. der Zeichensatz) nur 128 Zeichen hat. Der höchste Wert ist also 127. Um es genau zu sagen, gibt es das Zeichen gar nicht in diesem Zeichensatz.
Um zu prüfen, ob sich in einem String ein Zeichen befindet, das ein Steuerzeichen ist, so kannst Du einfach so abfragen (die LinQ- Extension bei einem String gibt es erst ab .Net 4.0):
C#-Quelltext 1: 2: 3: 4: 5:
| string s = "Hallo"; if (s.Any(x => (int)x < 32)) { } |
LG, Marko
|
|
C# 
      
Beiträge: 561
Erhaltene Danke: 65
Windows 10, Kubuntu, Android
Visual Studio 2017, C#, C++/CLI, C++/CX, C++, F#, R, Python
|
Verfasst: Do 20.10.11 22:23
Sry war ne weile offline.
Ja ich weiß wie ich die Abfrage machen kann, dass ist ja nicht das Problem. Doch wenn ich den Bulletpoint in eine Zahl konvertiere, erhalte ich eben den Wert 149 und nicht 7. Das ist mein Problem.
Ich werde wohl ein String mit den verbotenen Zeichen anlegen müssen und dann jedes Char mit einander vergleichen...
Trotzdem Danke.
_________________ Der längste Typ-Name im .NET-Framework ist: ListViewVirtualItemsSelectionRangeChangedEventHandler
|
|
Kha
      
Beiträge: 3803
Erhaltene Danke: 176
Arch Linux
Python, C, C++ (vim)
|
Verfasst: Do 20.10.11 22:44
Wie definierst du denn verbotene Zeichen bzw. wofür benötigst du das? Wie du mittlerweile selbst gesehen hast, ist der Bullet Point sicher kein Steuerzeichen, sondern in der Windows Codepage 1252 an Stelle 149 als ganz normales Zeichen definiert.
_________________ >λ=
|
|
C# 
      
Beiträge: 561
Erhaltene Danke: 65
Windows 10, Kubuntu, Android
Visual Studio 2017, C#, C++/CLI, C++/CX, C++, F#, R, Python
|
Verfasst: Fr 21.10.11 19:41
Ich habe eine spezielle Speicherfunktion von Dateien. Dort werden die Werte durch solche Zeichen getrennt. Wenn jetzt in dem Wert so ein Zeichen vorhanden ist, erhalte ich falsche Werte.
Aber das hat sich alles erledigt. Bin auf XML umgestiegen (XDocument).
_________________ Der längste Typ-Name im .NET-Framework ist: ListViewVirtualItemsSelectionRangeChangedEventHandler
|
|
|