Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.12.2024, 23:00   #1
OneWay2Go
Новичок
Джуниор
 
Регистрация: 01.12.2024
Сообщений: 1
Печаль MemoryStream Проблема C#

Код:
using System.Text;
using System.Text.Json;

namespace ConsoleAppMemoryStream
{
    internal class Program
    {
        static void Main(string[] args)
        {
            var order = new Order()
            {
                OrderId = 1,
                CustomerName = "Muhammadamin",
                TotalAmount = 2,
                OrderItem = new List<OrderItem>
                {
                    new()
                    {
                        ItemName = "Item",
                        Quantity = 1,
                        Price = 1
                    },
                    new()
                    {
                        ItemName = "Item",
                        Quantity = 2,
                        Price = 2
                    }
                }
            };

            var memoryStream = new MemoryStream();

            var orderJson = JsonSerializer.Serialize(order);
            var orderBytes = Encoding.UTF8.GetBytes(orderJson);

            memoryStream.Write(orderBytes, 0, orderBytes.Length);

            Console.WriteLine("Before:");
            Console.WriteLine($"OrderId: {order.OrderId}, Customer name: {order.CustomerName}, Total amount: {order.TotalAmount}");
            foreach (var item in order.OrderItem)
            {
                Console.WriteLine($"Item name: {item.ItemName}, quantity: {item.Quantity}, price: {item.Price}");
            }

            Console.WriteLine();

            // o'zgartirish kiritish uchun
            memoryStream.Seek(0, SeekOrigin.Begin);
            string json = new StreamReader(memoryStream).ReadToEnd();
            json = json.Replace("\"Quantity\": 2", "\"Quantity\": 5000");
            Console.WriteLine(json);

            Console.WriteLine();

            memoryStream.SetLength(0);  
            var newOrderBytes = Encoding.UTF8.GetBytes(json);
            memoryStream.Write(newOrderBytes, 0, newOrderBytes.Length); 
            memoryStream.Seek(0, SeekOrigin.Begin);

            var newOrder = JsonSerializer.Deserialize<Order>(memoryStream);

            Console.WriteLine("After:");
            Console.WriteLine($"OrderId: {newOrder.OrderId}, Customer name: {newOrder.CustomerName}, Total amount: {newOrder.TotalAmount}");
            foreach (var item in newOrder.OrderItem)
            {
                Console.WriteLine($"Item name: {item.ItemName}, quantity: {item.Quantity}, price: {item.Price}");
            }
        }

        static Order ReadObjectFromStream(MemoryStream stream)
        {
            stream.Position = 0;
            var json = Encoding.UTF8.GetString(stream.ToArray());
            return JsonSerializer.Deserialize<Order>(json);
        }

        static void WriteObjectToStream(Order order, MemoryStream stream)
        {
            var json = JsonSerializer.Serialize(order);
            var jsonBytes = Encoding.UTF8.GetBytes(json);

            stream.SetLength(0);
            stream.Write(jsonBytes, 0, jsonBytes.Length);
            stream.Position = 0;
        }

        class Order
        {
            public int OrderId { get; set; }
            public string CustomerName { get; set; }
            public int TotalAmount { get; set; }
            public List<OrderItem> OrderItem { get; set; }
        }

        class OrderItem
        {
            public string ItemName { get; set; }
            public int Quantity { get; set; }
            public int Price { get; set; }
        }
    }
}
Почему то Replace
Код:
memoryStream.Seek(0, SeekOrigin.Begin);
            string json = new StreamReader(memoryStream).ReadToEnd();
            json = json.Replace("\"Quantity\": 2", "\"Quantity\": 5000");
            Console.WriteLine(json);
не работает не знаю что делать помогите! Попробовал все.
OneWay2Go вне форума Ответить с цитированием
Старый 02.12.2024, 09:05   #2
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,861
По умолчанию

а что программа-то должна делать?
задание-то как звучит?
чтоб ошибку искать и исправлять, надо людям хотя бы на что-то ориентироваться.
а так, просто строку удалить и нет ошибок...
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Indy и поток MemoryStream udaf Работа с сетью в Delphi 0 07.12.2009 08:54
Проблема с Graphic и MemoryStream andrey4623 Мультимедиа в Delphi 10 16.07.2009 22:11
Загрузить видео из MemoryStream Hottabych Мультимедиа в Delphi 3 25.03.2009 05:47
Поиск в MemoryStream... Hottabych Общие вопросы Delphi 6 17.02.2009 20:37
Проблема с отправкой MemoryStream от сервера к клиенту Ragnarek Работа с сетью в Delphi 4 07.02.2009 10:29