Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
3 / 3 / 1
Регистрация: 24.03.2012
Сообщений: 174

Перенос строки

11.06.2017, 23:43. Показов 1300. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Говорю сразу - c# знаю очень плохо.
Суть вопроса - клиент серверное приложение, которое отправляет некоторое сообщение от клиента к серверу. Как бы на этом функция программы заканчивается. Вот сообственно кусок кода, в котором отправляется сообщение
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
        private string getUserGroupInfo()
        {
            string result = "";
            //Black magic using linq 
            var path = string.Format("WinNT://{0},computer", Environment.MachineName);
 
            using (var computerEntry = new DirectoryEntry(path))
            {
                var userNames = from DirectoryEntry childEntry in computerEntry.Children
                                where childEntry.SchemaClassName == "User"
                                select childEntry.Name;
                result+= "===ПОЛЬЗОВАТЕЛИ УДАЛЕННОГО КОМПЬЮТЕРА===U+000D U+000A\r\n";
                foreach (var name in userNames)
                    result += name;
 
                var userGroup = from DirectoryEntry childEntry in computerEntry.Children
                                where childEntry.SchemaClassName == "Group"
                                select childEntry.Name;
                result += "===ГРУППЫ УДАЛЕННОГО КОМПЬЮТЕРА===";
                foreach (var group in userGroup)
                    result += group;
            }
            return result;
 
        }
 
        public string SendFileName = null;
        public void SendData()
        {
            // Состав отсылаемого универсального сообщения
            // 1. Заголовок о следующим объектом класса подробной информации дальнейших байтов
            // 2. Объект класса подробной информации о следующих байтах
            // 3. Байты непосредственно готовых к записи в файл или для чего-то иного.
 
            SendInfo si = new SendInfo();
            si.message = getUserGroupInfo();
            //  Если нет сообщения и отсылаемого файла продолжать процедуру отправки нет смысла.
            if (String.IsNullOrEmpty(si.message) == true && String.IsNullOrEmpty(SendFileName) == true) return;
 
            /*
            if (SendFileName != null)
            {
                FileInfo fi = new FileInfo(SendFileName);
                if (fi.Exists == true)
                {
                    si.filesize = (int)fi.Length;
                    si.filename = fi.Name;
                }
                fi = null;
            }*/
 
            BinaryFormatter bf = new BinaryFormatter();
            MemoryStream ms = new MemoryStream();
            bf.Serialize(ms, si);
            ms.Position = 0;
            byte[] infobuffer = new byte[ms.Length];
            int r = ms.Read(infobuffer, 0, infobuffer.Length);
            ms.Close();
 
            byte[] header = GetHeader(infobuffer.Length);
            byte[] total = new byte[header.Length + infobuffer.Length];
            Buffer.BlockCopy(header, 0, total, 0, header.Length);
            Buffer.BlockCopy(infobuffer, 0, total, header.Length, infobuffer.Length);
            /*
            // Если путь файла указан, добавим его содержимое в отправляемый массив байтов
            if (si.filesize > 0)
            {
                FileStream fs = new FileStream(SendFileName, FileMode.Open, FileAccess.Read);
                fs.Read(total, header.Length + infobuffer.Length, si.filesize);
                fs.Close();
                fs = null;
            }*/
 
            // Отправим данные подключенным клиентам
            NetworkStream ns = _tcpClient.tcpClient.GetStream();
            // Так как данный метод вызывается в отдельном потоке рациональней использовать синхронный метод отправки
            ns.Write(total, 0, total.Length);
 
            // Обнулим все ссылки на многобайтные объекты и попробуем очистить память
            header = null;
            infobuffer = null;
            total = null;
            SendFileName = null;
            GC.Collect();
            GC.WaitForPendingFinalizers();
 
            // Подтверждение успешной отправки
            Parent.ShowReceiveMessage("Данные успешно отправлены!");
        }
Проблема сообственно вот в чем. Когда сообщение приходит к клиенту - оно сливается в одну строку. Как этого избежать? Спасибо!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.06.2017, 23:43
Ответы с готовыми решениями:

Перенос строки
Нужно написать слово power, потом поменять цвет у символа -> ■, и потом снова по дефолту цвета выводить, т.е. power - серым, ■ -...

Перенос строки
Description +=" текст"; Требуется добавить перенос строки перед текстом, \n не работает. Помогите пожалуйста

Перенос строки в БД Access
Есть ListBox и база данных Access. Нужно выделенную строку в листбоксе добавить в базу данных Access по нажатию кнопки

2
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
11.06.2017, 23:45
Ну и при чём здесь С++?
Или сервер на С#, клиент на С++?
Тогда покажите код клиента.
0
3 / 3 / 1
Регистрация: 24.03.2012
Сообщений: 174
11.06.2017, 23:54  [ТС]
Дико извиняюсь, что - то попутал на ночь глядя

Добавлено через 5 минут
Дико извиняюсь, что - то попутал на ночь глядя

вот ссылка на проект https://drive.google.com/file/... sp=sharing
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.06.2017, 23:54
Помогаю со студенческими работами здесь

Перенос строки в listbox
Когда в listbox добавляется элемент с длинным текстом, то своими границами listbox его обрезает. Подскажите пожалуйста, как сделать перенос...

Правильный перенос строки
Есть стринговая переменная, которая хранит текст (логично) Мне нужно организовать перенос строки, я пробовал так: string text =...

Перенос слов из строки в переменную
Доброго времени суток, уважаемые форумчане. Прошу помощи в следующей проблеме: в строковой переменной text содержатся слова,...

Динамический перенос строки в консоли
Вот интересная задачка. Я прикинул что же получится, если попытаться в консоли сделать текстовый редактор. Есть один каверзный вопрос. Как...

Перенос строки при считывании из файла
Глупый конечно вопрос, но почему не происходит перенос строки? Console.WriteLine("перенос\r\nстроки");//переносит ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru