powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Простой способ создания ASCII строки
14 сообщений из 14, страница 1 из 1
Простой способ создания ASCII строки
    #38166858
daunito
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет. Убил больше часа, но так ничего полезного в гугле на нарыл. Нужно сохранить строку ASCII в файл. Как можно это сделать просто и быстро? Написал такой код, но почему-то не работает:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
public String conv(Encoding src, Encoding dst, String text)
        {
            byte[] aaa = src.GetBytes(text);
            System.Text.Encoding.Convert(src, dst, aaa);
            String sss = dst.GetString(aaa);
            return sss;
        }

lgwr.WriteLine(conv(Encoding.Unicode, Encoding.GetEncoding(1251), "Русский текст"));



если открыть тоталом или фаром, то кодировку показывает UTF-8. Что я делаю не так?
...
Рейтинг: 0 / 0
Простой способ создания ASCII строки
    #38166868
daunito
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, StreamWriter не подходит, потому что в файл записываю строку только для проверки. Ее надо передавать в библиотечную функцию
...
Рейтинг: 0 / 0
Простой способ создания ASCII строки
    #38166890
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
daunitoЕе надо передавать в библиотечную функцию

в файл писать -
Код: c#
1.
2.
3.
4.
using (StreamWriter ws = new StreamWriter(@"c:\temp\bla-bla.txt", true, Encoding.GetEncoding(1251)))
            {
                ws.WriteLine("ASDЯЧСМИ");
            }



что за библиотека?
байтовый массив передавай туда, в CLR все строки юникодные
...
Рейтинг: 0 / 0
Простой способ создания ASCII строки
    #38166902
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
daunitoЕе надо передавать в библиотечную функцию

Неуправляемый код? См. P/invoke и атрибут MarshalAs(UnmanagedType.AnsiBStr)

что-то типа:
Код: c#
1.
2.
[DllImport("MyLib.dll", SetLastError = true, CharSet = CharSet.Auto, CallingConvention = СallingConvention.StdCall)]
public static extern long MyFunction(bunch of params, [MarshalAs(UnmanagedType.AnsiBStr)] out string text);



Есть еще вариант преобразовать в строку байт, библиотека точно поймет
И, при условии работы по ссылке, можно передавать указатель на область памяти, но это гемморойный путь
...
Рейтинг: 0 / 0
Простой способ создания ASCII строки
    #38166905
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
daunito,

не путай ASCII и 1251
...
Рейтинг: 0 / 0
Простой способ создания ASCII строки
    #38167054
daunito
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилчто за библиотека?

Gios.word
...
Рейтинг: 0 / 0
Простой способ создания ASCII строки
    #38167055
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
daunitoGios.word

Не? Зачем тогда неуправляемая?
http://www.codeproject.com/Articles/11252/Gios-WORD-NET-Library-using-RTF-specification
...
Рейтинг: 0 / 0
Простой способ создания ASCII строки
    #38167059
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
daunito,

где она требует передачи неуникодных строк ?
...
Рейтинг: 0 / 0
Простой способ создания ASCII строки
    #38167061
beg-in-er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
daunito,
Код: c#
1.
2.
3.
4.
5.
6.
7.
static public void WRITE_TO_F(string value, string file)
        {
            FileStream fs = new FileStream(file, FileMode.Create);
            byte[] BB = Encoding.ASCII.GetBytes(value);
            fs.Write(BB, 0, BB.Length);
            fs.Close();
        }
...
Рейтинг: 0 / 0
Простой способ создания ASCII строки
    #38167094
daunito
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилdaunito,

где она требует передачи неуникодных строк ?
Возможно я протупил. Пол дня уже с ней ковыряюсь. Вывод сделал такой потому что при передаче обычных строк
Код: c#
1.
2.
3.
4.
5.
WordDocument doc = new WordDocument(WordDocumentFormat.A4);
Font regular = new Font("Verdana", 10, FontStyle.Regular);
doc.SetFont(regular);
doc.WriteLine("Отчет");
doc.SaveToFile("Report.doc");


на выходе получаю нечитабельную хрень. С английским все нормально. Пробовал в UTF-8, UTF-16, ASCII передавать - ни в какую
...
Рейтинг: 0 / 0
Простой способ создания ASCII строки
    #38167116
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
daunito,

библиотека уникод не поддерживает .

как объехать написано в обсуждении(Unicode characters bugfix )
на поиск потратил 30 секунд
...
Рейтинг: 0 / 0
Простой способ создания ASCII строки
    #38167299
daunito
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,

Огромное спасибо!
...
Рейтинг: 0 / 0
Простой способ создания ASCII строки
    #38403552
helloworld123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
daunito, столкнулся с такой же проблемой,немного не понял как решается!
код в теме Unicode characters bugfix вижу,а куда его вставлять?
...
Рейтинг: 0 / 0
Простой способ создания ASCII строки
    #38403786
helloworld123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
helloworld123, ступил,отмена:)
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Простой способ создания ASCII строки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]