Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Программирование в среде .NET (ASP.NET,ADO.NET) на C#/VB.NET

Автор: Mextrom
Дата сообщения: 23.02.2012 16:34
LuckyStrike
Посмотри, чему у тебя равно mse. Если 0, то ты сравниваешь одинаковые изображения, т.к. иначе сумма (I(i, j) - K(i, j))^2 не может быть нулевой. Если изображения отличаются хотя бы одним пикселем, то mse будет > 0.

Цитата:
картинки я беру обычные из винды которые, из папки мои изображения

... и сравниваешь с чем?

Цитата:
PSNR наиболее часто используется для измерения уровня искажений при сжатии изображений. Проще всего его определить через среднеквадратичную ошибку (СКО или MSE (англ. mean square error)), которое для двух монохромных изображений I и K размера m×n, одно из которых считается зашумленным приближением другого
Т.е. надо взять какую-нибудь bmp-шку, сжать её каким-нибуь jpeg-ом и сравнить исходное изображение со сжатым.

Цитата:
может просто разрешение для них большое, поэтому пснр считает бесконечность??

Я сравнивал изображения размерами 2028x1521 (примеры из статьи: исходное, сжатое1 и сжатое2) и 2048x3072 (сравнил два произвольных изображения одинакового размера между собой). Бесконечности не было.


Добавлено:
Кстати, для верности приведи числитель и знаменатель в выражении
Код: mse *= 1 / ((bmp1.Width * bmp1.Height)*3);
Автор: LuckyStrike
Дата сообщения: 23.02.2012 22:01
Все, получилось у меня расчитать PSNR, просто я умножал
Код: mse* = (double)(mseR + mseG + mseB) / (double)((bmp1.Width * bmp1.Height)*3);
Автор: LuckyStrike
Дата сообщения: 24.02.2012 05:59
Mextrom, спасибо тебе за помощь!) и еще один вопрос, у тебя алгоритма сжатия нет jpg? или кусочек кода?)
Автор: Mextrom
Дата сообщения: 24.02.2012 07:37
LuckyStrike
Не за что.
Алгоритма сжатия у меня нет .
Автор: Standy66
Дата сообщения: 25.02.2012 21:32
Парни кто нибудь работал с WPF? Проблема такая, стоит пара плейнов с текстурой Viewport2DVisual3D и прикрепленным RotateTransform3D, так вот, вся эта штуковина на кор2дуо 2 ггц жрет максимум 20 процентов, а на двуядерном пентиум д 3.6 ггц - (!) 50 - 80 процентов. Пробовал оптимизировать через ngen.exe, ничего не выходит
Автор: Molniev
Дата сообщения: 26.02.2012 16:55
Standy66
WPF же через DirectX работает. Видимо "на кор2дуо 2 ггц" стоит современная видюха, "а на двуядерном пентиум д 3.6 ггц" используеться встроеное видио.
Что не соответствует вашим ожиданиям?
Автор: andrey777k
Дата сообщения: 29.02.2012 19:48
C#
Подскажите как получить доступ к переменной string a1 которая находится в классе var.cs, из класса program.cs(изменить ее значение)?
Автор: BlackVetal
Дата сообщения: 01.03.2012 04:56
andrey777k
Либо сделать ее паблик (но это неправильно по философии), либо сделать паблик-свойство - которое даст доступ к переменной, еще способ - можно использовать метод или конструктор в качестве параметра использовав новое значение этой переменной.
В коде program, создаешь экземпляр var - и обращаешься к свойству, методу.
можно использовать статик класс и методы - тогда создавать экземпляр не обязательно ...
Автор: salexn1
Дата сообщения: 01.03.2012 12:02
andrey777k
привести код еще желательно var.cs
Автор: andrey777k
Дата сообщения: 01.03.2012 19:46
Спасибо за помощь разобрался у меня была описана переменная как public string a1; а нужно было public static string a1;
Автор: Klaid1
Дата сообщения: 06.03.2012 07:12
Мужики, подскажите как в iMacros сделать вставку текста из файла.
Например:
... идет макрос,
дальше обращается к файлу,
вставляет из него текст в определенное поле....

Что-то типа:
VERSION BUILD=7401110 RECORDER=FX
SET !DATASOURCE file.txt
TAB T=1
TAG POS=1 TYPE=A ATTR=TXT:Написать<SP>сообщение
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=ID:im-textarea CONTENT={{name}}
TAG POS=1 TYPE=DIV ATTR=ID:sendMesseng

в каком формате записывать данные в file.txt чтобы они вводились в поле CONTENT={{name}}
или может сделать в файле csv, тогда как?
Автор: Undaster
Дата сообщения: 19.03.2012 12:17
Взялся за написание морды для домашней БД, в качестве инструментов пытаюсь освоить и использовать WPF с её MVVM. Поделитесь пожалуйста хинтами / трюками (ссылки приветствуются) для работы с большими БД (rows от 200k до 3000k например). Сейчас делаю примерно следующее:
1.    Модель ADO.NET EDM в качестве MODEL для существующей базы
2.    С VIEWMODEL пока особо не заморачиваюсь
3.    Для VIEW преимущественно XAML.

Из, так сказать, «животрепещущих» вопросов:
1.    Биндинг собственно больших таблица со значительным числом строк. Например, делаю к ListBox’у биндинг всей таблички, выставляю IsAsync="True". Запускаю, и… иду «пить чай» … да и память забивается. Вроде бы напрашивается считывание данных порциями с помощью .SKIP() .TAKE() в LINQ. Но изобретать велосипед совсем не хочется, может быть уже есть готовые решения?
2.    Тот же быстрый отбор записей в процессе ввода строки фильтра --- тоже не совсем понятно как реализовать. Про таймер понятно, а вот как это с WPF/MVVM увязать?

Буду также рад, советам и замечаниям к проблемам, до которых ещё не «дорос», но с которыми вероятнее всего столкнусь
Автор: bumaga3rub
Дата сообщения: 24.03.2012 05:24
Народ подскажет как в lightswitch (c#) вытащить данные из таблицы.

Суть в следующем: У меня связаны две таблицы (ОДИН КО МНОГИМ), и я спокойно могу использовать данные из таблицы "ОДИН" в таблице "МНОГИМ", но как сделать на оборот.

Если кто меня понял, помогите решить эту проблему.
Автор: IGROmane
Дата сообщения: 25.03.2012 17:13
Помогите с кодом народ
http://forum.ru-board.com/topic.cgi?forum=33&topic=13226#1
Автор: valento005
Дата сообщения: 12.04.2012 22:06
может кто помоч перевети проги в обычный Си там где printf scanf .............
вот проги
[more]

Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MAS01
{
class Program
{
static void Main(string[] args)
{
int n, m; //n-первый элемент, который равен 0; m-последний элемент, который равен 0
n = 0; m = 0;
Boolean q; q = false; // q- проверка состояния для нахождения первого нулевого элемента
double max; max = 0; //max - максимальный по модулю преобразованый элемент

double[] D = new double[35]; //Объявление массива из 35 элементов

Console.WriteLine("Задача:\nДан массив действительных чисел D(35).\n Удалить из него элементы, расположенные между первым и последним нулевыми элементами.\n Найти максимальный по модулю элемент в преобразованном массиве.");

Console.WriteLine("\n\nВведите массив:");
for (int i = 0; i < 35; i++)
{
D[i] = Convert.ToDouble(Console.ReadLine()); //Вводим значения массива
}

Console.WriteLine("\n\nМассив:");

for (int i = 0; i < 35; i++)
{

Console.Write(D[i] + " "); //Выводим на экран
}

for (int i = 0; i < 35; i++)
{
if (q == false && D[i] == 0) { q = true; n = i; } //ищем первый нулевой элемент массива
if (D[i] == 0) m = i; //ищем последний элемент массива
}

if (n == m) Console.WriteLine("\n\nПреобразование невозможно.В данном массиве меньше двух нулей");

else
{

Console.WriteLine("\n\n Преобразованый массив:");

for (int i = 0; i < 35; i++)
{
if (i <= n || i >= m) Console.Write(D[i] + " "); //Выводим массив на экран без элементов, которые расположены между первым и последним нулями
}
}

for (int i = 0; i < 35; i++)
{
if (D[i] < 0) D[i] = D[i] / -1; // берём элемент массива, который меньше нуля, по модулю
if (D[i] > max) max = D[i]; // ищем максимальный элемент массива
}

Console.WriteLine("\n\n Максимальный по модулю элемент равен " + max);
Console.ReadLine();
}
}
}
Автор: mpirz88
Дата сообщения: 21.04.2012 18:43
Здравствуйте. Я практически новичок в программирование на .Net.
По ходу написания БД на C# у меня возникли некоторые вопросы со стандартными компонентами, я хотел бы найти альтернативные компоненты, которые смогут решить возникшие затруднения. Понимаю что можно и стандартные подшаманить, создать на их основе др.компоненты с переписными событиями и т.п. Сейчас так и поступаю, но все равно работает это не очень хорошо, поэтому ищу альтернативу..
Меня интересует:
1) Нормальный DateTimePicker или DateTimeEdit, который можно быстро редактировать с клавиатуры без мышки. И в котором нормально обрабатывается DBNull. Да, есть MaskEdit, есть модернизированные(унаследованные) DateTimePicker...но все равно везде существенные недостатки.
2) Нужен гибко настраиваемый ComboBox, в котором можно было бы удобно искать инкрементым поиском, но при этом нельзя было бы вводить значения, которых нет в списке - т.е. не просто "шустро и быстро" набирать первые буквы, которые к тому же не видны при наборе (как в случае, когда DropDownStyle=DropDownList)... а примерно так, как при DropDownStyle=DropDown, но при этом нельзя было бы вводить значения, которых нет в списке (например, выбирается всегда наиболее подходящий пункт из списка). На Delphi у меня были похожие компоненты, которые я всегда использовал. Сейчас я все делаю через события стандартного ComboBox, но работает несколько кривовато..
3) Желательно (но не обязательно) нужен некий DataGridView с многоуровневыми Column Header. Например, на более верхнем уровне - "Данные сотрудника", на более нижнем - "Имя", "Фамилия", "Возраст", "Должность".
Автор: Undaster
Дата сообщения: 22.04.2012 05:53

Цитата:
3) Желательно (но не обязательно) нужен некий DataGridView с многоуровневыми Column Header. Например, на более верхнем уровне - "Данные сотрудника", на более нижнем - "Имя", "Фамилия", "Возраст", "Должность".

Посмотри DevExpress, по остальным пунктам кстати тоже можешь глянуть
http://www.devexpress.com/Products/NET/Controls/WinForms/Grid/adv_banded_view.xml
Автор: mpirz88
Дата сообщения: 22.04.2012 15:38
Undaster


Цитата:
Посмотри DevExpress, по остальным пунктам кстати тоже можешь глянуть
http://www.devexpress.com/Products/NET/Controls/WinForms/Grid/adv_banded_view.xml

Ну DevExpress само собой, и он в делфях супер. Но больно уж он громоздкий наверно (пока еще не ставил).
Есть ли что-либо более компактное (многоуровневые Grid-ы необязательны) ?

Кстати, я еще хотел вам написать свои соображения по поводу EDM:
Цитата:
Поделитесь пожалуйста хинтами / трюками (ссылки приветствуются) для работы с большими БД (rows от 200k до 3000k например). Сейчас делаю примерно следующее:
1. Модель ADO.NET EDM в качестве MODEL для существующей базы

Скажу вам как на духу Зря вы связались с EDM. Честно сказать, я не знаю, как объектно-сущностный подход EDM может "разрулить" большие объемы данных. Конечно, в теории это всё очень красяво выглядит: "модель", "отображение". Но в реальности я работал с довольно большими sql server базами, знаете, никакой EDM вам не заменит написанные и оптимизированные лично вами sql-запросы к БД. Слишком много деталей и тонкостей в написании запросов. Лучше вынесите логику формирования данных для программы в хранимые процедуры, с ними и работайте (используя автономный уровень ado). Конечно нельзя возвращать программе 200-300 тыщ записей, вы ведь работаете с реальным сервером БД, практикуйте разумный подход. После того, как пользователь ввел критерий поиска - верните первые сто (или тысячу) записей, которые подходят под обозначенный критерий. Если оператору нужно что-то более конкретное - пусть уточнит критерий поиска. Иначе так и будете «пить чай», а если операторов будет десять или сто, тогда и чай не поможет.
Автор: NME
Дата сообщения: 26.04.2012 23:30
IGROmane
я в шахматы играть не умею, хотя знаю правила игры и умею передвигать фигуры в нужном направлении))
также и в программировании - могу написать программу (не очень сложную), которая будет работать как надо, хотя сведущие люди скажут, что так писать код нельзя..
вот пример твоей программы
[more]
Код: using System;
using System.Collections.Generic;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
ArrayList x;
ArrayList y;
ArrayList z;

public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
ParseFile(openFileDialog1.FileName);
}
}

private void ParseFile(string path)
{
StreamReader sr = new StreamReader(path);
x = new ArrayList();
y = new ArrayList();
z = new ArrayList();
try
{
while (!sr.EndOfStream)
{
string s = sr.ReadLine();
string[] line = s.Split();
for (int j = 0; j < 22; j += 7)
{
x.Add(line[j]);
y.Add(line[j + 1]);
z.Add(line[j + 2]);
}
}
}
catch { }
finally
{
sr.Close();
}
}

private void button2_Click(object sender, EventArgs e)
{
saveFileDialog1.Filter = ("txt|*.txt");
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
SaveFile(saveFileDialog1.FileName);
}
}

private void SaveFile(string path)
{
StreamWriter sw = new StreamWriter(path, false);
for (int j = 0; j < z.Count; j++)
{
sw.Write(x[j] + " " + y[j] + " " + z[j] + " ");
}
sw.Close();
}

}
}
Автор: piratiK
Дата сообщения: 28.04.2012 21:11
Подскажите новичку что то запутался с интерфейсами.
Читаю книжку по C# и что то мне кажется странным что интерфейс это как бы самостоятельная единица кода, которая реализуется в классе наследнике. А потом через ссылки на интерфейс дергается как бы реализация из наследуемого класса. Это если бы они (интерфейсы) были бы виртуальными то тогда еще можно как то понять, а так
То есть это если бы по ссылке на базовый класс вызывался метод из наследуемого класса, но не виртуальный.
В общем запутался.
Автор: Mextrom
Дата сообщения: 29.04.2012 20:30
piratiK
Через интерфейс в CLR реализуется ограниченное множественное наследование. Интерфейс - декларация методов, свойств и событий, которые будут реализованы в классе или структуре, наследующих этот интерфейс. Т.е. класс (или структура) должен в обязательном порядке реализовать все члены, объявленные в интерфейсе.
Автор: dimpase
Дата сообщения: 09.05.2012 09:39
Кто пробывал юзать .NET класс DOTNET() в php?
system.io.ports.serialport
?
У меня че то не пголучается этот класс вызвать.
Может кто нить у себя вызвать его?
http://msdn.microsoft.com/ru-ru/library/system.io.ports.serialport.aspx

Добавлено:
Т еще вопрос, есть дллка, от производителя ккм, штрих фрк, можно ли эту дллку подключить в .NET для php , вызывается она так,-"Addin.DrvFR".
дллка собстна DrvFR.dll


Добавлено:
И по возможности не надо предлагатьнаписать все это на си там или делфи, мне нужен пхп.
Спрашиваю про конкретный класс дотнет.
Автор: dimpase
Дата сообщения: 11.05.2012 09:22
И тут все молчат. Что, такая это непокорная функция?
Автор: Undaster
Дата сообщения: 11.05.2012 10:01
dimpase, подобные вопросы логичнее задавать PHP'шникам, а тут, как видно из заголовка, - "собрались" C#/VB.NET Net'чики. Я не удивлюсь, если под CLR с указанными функциями и классами и проблем никаких нет. DLL в .Net содержат управляемый код, DrvFR.dll - я подозреваю обычная бинарная с неуправляемым кодом.
Автор: dimpase
Дата сообщения: 11.05.2012 12:42
Undaster
Меня оттуда сюда пнули .
А вы туда пинаете.

Тоесть я не могу вызвать методы и функции из этой длл?
Или все-таки могу?

Автор: Undaster
Дата сообщения: 11.05.2012 13:58
dimpase, давай тогда чтобы в пустую не тереть, покажи фрагмент кода, в котором ты используешь .Net, и эту dll-ку тоже.
Автор: dimpase
Дата сообщения: 12.05.2012 09:55
Все разобралси.

Код:
<?php
$xls = new COM("Addin.DrvFR") or die("Error");
$xls->Password = 30;
$xls->Quantity = 1000;
$xls->Price = 1.56;
$xls->Department = 1;
$xls->Tax1 = 1;
$xls->Tax2 = 2;
$xls->Tax3 = 0;
$xls->Tax4 = 0;
$xls->StringForPrinting = 'Спичечный коробок';
$xls->Sale;
echo $xls->ResultCode;
?>
Автор: ValeriyZ
Дата сообщения: 31.05.2012 10:26
Нужно из сервера клиенту отдать файл большего размера (к примеру 0,5 гб). Вроде бы проблемы нет, но на сервере файлы хранятся с именами типа ID с базы данных, а хочется чтоб клиенту приходил сайт с человеческим именем. Как передать файл клиенту с другим именем?

Сервер IIS 7.5 и на нем же стоит PHP. Если прогнать через Response.BinaryWrite то на больших файла сервер выдает ошибку. Может чото в PHP подходящее есть? Направьте пожалуйста на путь истинный…
Автор: mxm1975
Дата сообщения: 01.06.2012 18:08

Цитата:
хранятся с именами типа ID с базы данных, а хочется чтоб клиенту приходил сайт с человеческим именем


как-то так?


Код:
response.AppendHeader("Content-Disposition", string.Format("{0}; filename=\"{1}\"", disposition, fileInfo.Name));
Автор: nikanomo
Дата сообщения: 04.06.2012 21:36
Подскажите, как используя стандартный System.Web.Security.Membership сделать, чтобы под одним логином в системе могли одновременно находиться не более N пользователей?

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102

Предыдущая тема: Как удалить/добавить/отключить/включить устройство?


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.