Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - Условие для возвращения нужного значения

Ответить
Настройки темы
.NET - Условие для возвращения нужного значения

Старожил


Сообщения: 241
Благодарности: 1

Профиль | Отправить PM | Цитировать


Можете подсказать какое условие нужно указать, чтобы возвращалось нужное значение, а не первое попавшееся.
В конкретном примере нужно значение JPG, а возвращается первое PSD
Код: Выделить весь код
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace ConsoleApplication9
{
    class Program
    {
        static void Main(string[] args)
        {
            byte[] content = File.ReadAllBytes(@"D:\error.jpg");
            Data Newdata = new Data();
            Newdata.Format(content);
            Console.ReadLine();
        }

    }


    public class Data
    {
        public byte[] bytes;
        public string name;
        List<Data> formats = new List<Data>();

        public string Format(byte[] content)
        {
            formats.Add(new Data() { name = "PNG", bytes = new byte[] { 137, 80, 78, 71, 13, 10, 26, 10 } });
            formats.Add(new Data() { name = "ACCDB", bytes = new byte[] { 0, 1, 0, 0, 83, 116, 97, 110, 100, 97, 114, 100, 32, 65, 67, 69, 32, 68, 66 } });
            formats.Add(new Data() { name = "MDB", bytes = new byte[] { 0, 1, 0, 0, 83, 116, 97, 110, 100, 97, 114, 100, 32, 74, 101, 116, 32, 68, 66 } });
            formats.Add(new Data() { name = "IMG", bytes = new byte[] { 0, 1, 0, 8, 0, 1, 0, 1, 1 } });
            formats.Add(new Data() { name = "MDF", bytes = new byte[] { 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 2, 0, 1 } });
            formats.Add(new Data() { name = "PIC", bytes = new byte[] { 1, 0, 0, 0, 1 } });
            formats.Add(new Data() { name = "MDF", bytes = new byte[] { 1, 15, 0, 0 } });
            formats.Add(new Data() { name = "XLS", bytes = new byte[] { 9, 8, 16, 0, 0, 6, 5, 0 } });
            formats.Add(new Data() { name = "DOC", bytes = new byte[] { 13, 68, 79, 67 } });
            formats.Add(new Data() { name = "PPT", bytes = new byte[] { 15, 0, 232, 8 } });
            formats.Add(new Data() { name = "PDF", bytes = new byte[] { 37, 80, 68, 70 } });
            formats.Add(new Data() { name = "7Z", bytes = new byte[] { 55, 122, 188, 175, 39, 28 } });
            formats.Add(new Data() { name = "PSD", bytes = new byte[] { 56, 66, 80, 83 } });
            formats.Add(new Data() { name = "JPG", bytes = new byte[] { 255, 216, 255, 224 } });
            return formats.Where(x => content.SequenceEqual(x.bytes))
              .Select(x => x.name)
              .FirstOrDefault();
        
           string extension = "";
           foreach (Data format in formats)
                    {
                           for (int i = 0; i < format.bytes.Length; i++)
                           {
                    
                    if (format.bytes[i] == content[i])
                    {
                        continue;
                     
                    }
                    else
                    
                    if (format.bytes[i] != content[i])
                    {
                       Console.WriteLine("Сравниваемые байты не равны");
                       
                    }

                    
               }

                extension = format.name;
               Console.WriteLine(extension);
                    }
           
           return extension;
          
       }

    }
}

Отправлено: 03:29, 08-03-2014

 


Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - Условие для возвращения нужного значения

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - как сделать .bat который выполнит поиск нужного текста с заменой не нужного на нужный ***b.m.m.c.b*** Скриптовые языки администрирования Windows 3 01-03-2018 09:53
Прочее - [решено] VPN только для нужного сайта!? Smorvel Сетевые технологии 6 13-03-2014 16:43
поиск нужного драйвера для HD6470M santana109 Поиск драйверов, прошивок и руководств 1 13-10-2012 15:33
CMD/BAT - Создание батника для возвращения оригинального меню Пуск Windows 7 Shiz0 Скриптовые языки администрирования Windows 3 28-08-2009 12:46
VBS/WSH/JS - [решено] Stop цикл при обнаружении нужного значения из файла Afon Скриптовые языки администрирования Windows 4 26-01-2009 15:16




 
Переход