Hallo,
ich habe einen Problem. Ich habe einen String und enthält u.a. folgende Zeile:
$a= "blablablablablablablabla\x00" wide nocase
Ich will die Substrings links und rechts vom Gleichheitszeichen in seperate Variablen speichern.
line.Split("=")[0] -> $a
line.Split("=")[1] -> "blablablablablablablabla\x00" wide nocase
Links vom Gleichheitszeichen wird korrekt gespeichert, der String rechts vom Gleichheitszeichen macht Probleme:
"blablablablablablablabla
Es wird beim Nullterminator abgebrochen. Kann mir jemand einen Tip geben wie ich den String rechts vom Gleichheitszeichen komplett abspeichern kann?
Hallo degri2006,
ich kann das geschilderte Verhalten nicht reproduzieren.
Welche .NET Version verwendet du und welche Culture (normal jene vom Betriebssystem, also de-DE od. de-AT (wie bei mir)).
using System;
string line = "$a=\"blablablablablablablabla\x00\" wide nocase";
string a = line.Split("=")[0];
string b = line.Split("=")[1];
Console.WriteLine(line);
Console.WriteLine(a);
Console.WriteLine(b);
liefert
$a="blablablablablablablabla " wide nocase
$a
"blablablablablablablabla " wide nocase
Die \0 werden / können so nicht dargestellt werden.
BTW: statt "="
(ist ein String) ist es besser die char-Überladung zu verwenden, also
string a = line.Split('=')[0];
string b = line.Split('=')[1];
Hier ist (unter .NET 5.0 und de-AT) das Ergebnis gleich, aber wegen Globalization APIs use ICU libraries on Windows könnte es einen Unterschied machen.
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
Hi,
danke für die Info. Ich arbeite auf einer Linux Maschine. dotnet --list-sdks sat 5.0.102. Ich habe auf derselben Maschine eine ziemlich genaue, aber etwas einfacherer Konstellation hergestellt und in dem Fall klappt es auch. Ich muss es mir morgen genauer angucken, warum es mit dem ursprünglichen Fall nicht klappt, aber bei dem anderen, das äquivalent ist, klappt.