2009-12-17 4 views
0

Я извлекаю данные из базы данных, которая использует символ ascii 254 как разделитель. Я хочу заменить это новой строкой.Как преобразовать символ ascii 254 в C# в другое?

Я попытался это:

rec = rec.Replace(char(254), Environment.NewLine); 

Это не работает, хотя.

+0

Вы имеете в виду символ ascii 254? или «число» 254? – Mark

+0

ascii character 254 –

ответ

6

Используйте это:

rec = rec.Replace ('\xFE', '\n'); 

или это:

rec = rec.Replace ("\xFE", Environment.NewLine); 
+1

Первоначально мне не понравился этот ответ, но потом вспомнил, что \ xFE следует перевести на правильный символ во время компиляции, так что это самый чистый ответ. Тем не менее я бы держался подальше от простой замены символов LF и придерживался Environment.NewLine, если вам не нужен буквальный символ \ x0A. – richardtallent

1

Похоже, ваш уступке полукокса неправильно:

rec = rec.Replace((char)254, Environment.NewLine); 

просто понял, что есть несоответствие типов на этой линии тоже. Вот код без несоответствия:

rec = rec.Replace("" + (char)254, Environment.NewLine); 
1

Char() не является конструктором символов. Вам нужно указать число как символ, нет эквивалента функции VB.NET Chr() в C#.

Попробуйте что-то вроде этого:

rec = rec.Replace((String) ((char) 254), Environment.NewLine); 

Edit: String.Replace не имеет перегрузку (полукокса, строка) и NewLine может быть несколько символов, поэтому я добавил еще один бросок в строку только, чтобы быть явным , (Гонсало, вы поймали меня во время редактирования лол!)

+2

Environment.NewLine - это строка и нет перезагрузки (char, string). – Gonzalo

0

Предполагая, что вы не компилируется, попробуйте следующее:

rec = rec.Replace(((char)254).ToString(), Environment.NewLine); 
1

Environment.NewLine - строка ... вы можете заменить символ только символом или строкой со строкой.

Вы можете попробовать это:

rec = rec.Replace("" + (char)254, Environment.NewLine); 
1

"" + (символ) 254 некрасиво. Вместо этого используйте «\ xFE».

Смежные вопросы