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

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

Автор: Mextrom
Дата сообщения: 22.08.2010 23:16
v1rtyaluk

Цитата:
Страничка возвращаемая во втором случаи имеет всего-навсего одну строчку текста, а в самом коде нет якорной ссылки с параметрами сессии.

Если возвращается одна строка, может быть не по той ссылке прошли, какие-то параметры не передали или, например, имел место редайрект. А параметры сессии как я понимаю, должны быть все-таки в cookie.
P.S. Аську написал в личку.
Автор: TeXpert
Дата сообщения: 23.08.2010 15:24
Вопрос знатокам XML и ASP.NET

Хочу в виде XML-файла реализовать нечто вроде генеалогического дерева: родитель-потомки и так далее, затем все это вывести в виде TreeView на странице ASP.NET
Есть у кого подобный опыт? В частности, вопрос об оптимальной структуре XML файла, как лучше делать, в виде вложенных списков или линейного, но со ссылками через идентификатор

Спасибо!
Автор: BlackVetal
Дата сообщения: 24.08.2010 05:22
TeXpert
Принципиальной разницы я не почуствовал. Но структура с вложенными списками более наглядная и удобная в плане ручного редактирования (когда тестируеш конечно ). С другой стороны - при линейной структуре проще писать парсер xml ...
Автор: v1rtyaluk
Дата сообщения: 24.08.2010 20:53
Ребята помогите, пожалуйста!

Нужно перевести код из j2me на C#.
Собственно код:

Код:
import com.sun.me.web.request.Arg;
import com.sun.me.web.request.Request;
import com.sun.me.web.request.Response;
import org.json.me.JSONObject;

/**
*
* @author andryk
*/
public class VkApi {

public static VkApi instance = new VkApi();
public static final String URL = "api.vkontakte.ru/api.php";

//Заполните данными своего приложения

public static final String APP_ID = "";
/*
Хеш приложения.
Заходим браузером на страничку авторизации и ищем в коде переменную 'var auth_hash'
Этот хеш нужен для авторизации.
*/
private static final String APP_HASH = "";


private static final Arg FORM_HEADER = new Arg("Content-Type", "application/x-www-form-urlencoded");
protected String userId;
protected String sid;
protected String secret;
protected String expire;
protected boolean isLogged = false;
protected boolean needCaptcha = false;
protected String captchaSid="", captchaKey="";
public PopupBox captcha = null;

protected VkApi() {
}

protected String findS(String source) throws Exception {
System.out.println(source);
String pattern = "id='s' value='";
int start = source.indexOf(pattern);
String s = source.substring(start + pattern.length(), start + pattern.length() + 56);
if (s.length() != 56) {
throw new Exception("s not finded in form");
}
return s;
}

public boolean isLogged() {

return isLogged;
}

public boolean isNeedCaptcha() {
return needCaptcha;
}


public String getSecret() {
return secret;
}

public String getUserId() {
return userId;
}

public String getSid() {
return sid;
}

class NeedCaptchaException extends Exception {

String sid;

public NeedCaptchaException(String s) {
sid = s;
}

public String getUrl() {
return "api.vk.com/captcha.php?sid=" + sid + "&s=1";
}

public String getSid() {
return sid;
}
}



public void setCaptchaKey(String captchaKey) {
this.captchaKey = captchaKey;
}

public void login(String login, String password) {
try {

Response result = Request.post("login.vk.com/", new Arg[]{
new Arg("act", "login"), new Arg("app", APP_ID),
new Arg("app_hash", APP_HASH), new Arg("captcha_key", captchaKey),
new Arg("captcha_sid", captchaSid),
new Arg("email", login), new Arg("pass", password),
new Arg("permanent", "1"), new Arg("vk", "")

}, new Arg[]{FORM_HEADER}, null, null, null);

//Если код редиректа - значит что то не так.
if (result.getCode() == 302) {
String sid = null;
int start = -1;
for (int i = 0 ; i < result.getHeaders().length; i++) {
if (result.getHeaders()[i].getKey().toLowerCase().equals("location")) {
String l = result.getHeaders()[i].getValue();
start = l.indexOf("m=1&cs=");
int end = l.indexOf("&", start + 7);
sid = l.substring(start + 7, end);
break;
}

}
//Или нужен ввод капчи
if(start > 0 )
throw new NeedCaptchaException(sid);
//Или неправильный логин/пароль
else
throw new Exception("Wrong login/pass");
}
needCaptcha = false;

//Посылаем новый запрос с куками от предыдущего
Response result2 = Request.get("login.vk.com/?vk=", null, null, null, result.getCookies());
//Находим SID
//.getResult().getRaw() - тело ответа
s = findS(result2.getResult().getRaw());

//Последний 3 запрос, в котором мы найдем искомые данные
Response result3 = Request.get("vkontakte.ru/login.php?app="+APP_ID+"&layout=popup&type=browser&settings=1054", null, null, null, new Arg[]{new Arg("remixsid", s)});

String r = result3.getResult().getRaw();
int start = r.indexOf("{\"mid\"");
//Нашли наш JSON обьект с данными сессии
String sess = r.substring(start, r.indexOf("}", start) + 1);
//Нужно считать его
JSONObject session = new JSONObject(sess);
//Запоминаем данные
userId = session.getString("mid");
sid = session.getString("sid");
secret = session.getString("secret");
expire = session.getString("expire");
isLogged = true;

} catch (NeedCaptchaException e) {
//Выводим юзеру капчу, адрес картинки - e.getUrl()
//После этого устанавливаем код setCaptchaKey(String key)
//И делаем логин заново

} catch (Exception e) {
isLogged = false;
//Действия если логин/пароль неправильные
}

}
}
Автор: getwellsoon
Дата сообщения: 26.08.2010 14:49
Вопрос по элементарнейшей функции отрисовки прямоугольника. Не могу понять логики работы.

Код:
Pen pen = new Pen(Color.Red, 3);
Brush brush = new SolidBrush(Color.Green);

e.Graphics.DrawRectangle(Pens.Red, 2, 2, 6, 6);
e.Graphics.FillRectangle(brush, 12, 2, 6, 6);
e.Graphics.DrawRectangle(pen, 2, 12, 6, 6);
pen.Alignment = System.Drawing.Drawing2D.PenAlignment.Inset;
e.Graphics.DrawRectangle(pen, 2, 22, 6, 6);
pen.Width = 1;
pen.Alignment = System.Drawing.Drawing2D.PenAlignment.Inset;
e.Graphics.DrawRectangle(pen, 2, 32, 6, 6);

pen.Dispose();
brush.Dispose();
Автор: ppkp
Дата сообщения: 27.08.2010 17:10
Подскажите, пожалуйста, какой аналог BitBlt есть в C#. Рисую движущийся 2D график, но скорость отрисовки маленькая. DirectX, думаю здесь не в тему - у меня же не 3D. Нужно нарисовать кусок и сдвинуть его, а на освободившееся место опять рисовать другой кусок и т.д. В Delphi при помощи BitBlt это делалось достаточно быстро.
Автор: ITCraft
Дата сообщения: 30.08.2010 14:56
Добрый день!

В одном классе два метода (1. private void CalcCurrentPrice, 2. public virtual void Execute), как из первого передать данные curPrice во второй? Сокращённо, код:

Код:
using System;
using System.Collections.Generic;
using System.Linq;
using TSLab.Script;
using TSLab.Script.Handlers;
using TSLab.Script.Optimization;
using TSLab.Script.Helpers;
using TSLab.Script.Realtime;

namespace TSLab.Samples
{
public class Final : IExternalScript
{
public double …

private void CalcCurrentPrice(ISecurityRt rtSec, out double curQty, out double curPrice)
{
curQty = 0;
curPrice = 0;
if (rtSec != null)
{
var orders = rtSec.Orders.OrderBy(ord => ord.Date);
foreach (var order in orders)
{
if (order.IsExecuted)
{
int bs = (order.IsBuy ? 1 : -1);
double qty = order.Quantity * bs;
double price = order.Price;
double newQty = curQty + qty;
bool isGrowPos = Math.Abs(newQty) > Math.Abs(curQty);
if (isGrowPos)
{
curPrice = newQty == 0 ? 0 : (curQty*curPrice + qty*price)/newQty;
}
curQty = newQty;
}
}
}
curPrice = curQty == 0 ? 0 : curPrice;
}

public virtual void Execute(IContext ctx, ISecurity sec)
{
var …

IList<double> …
{
//Расчёт параметров

}
// Торговля.
if (!sec.Positions.IsRealtime) return;
{
if (sec.LowPrices[i] <= curPrice - OtskokS)
secRt.NewOrder(TSLab.DataSource.OrderType.Growth…);
}
}
}
}
Автор: blaro
Дата сообщения: 30.08.2010 18:52
ITCraft
В первом методе можно передать значение во второй через return

Добавлено:
private double CalcCurrentPrice(.....)

Добавлено:

Цитата:
Имя 'curPrice' отсутствует в текущем контексте.

А вы эту переменную вообще определили в этом методе?
Автор: ITCraft
Дата сообщения: 30.08.2010 18:59
'curPrice' я её хочу там увидеть и поэтому спрашиваю, как это сделать?
Автор: blaro
Дата сообщения: 30.08.2010 19:06

Цитата:
'curPrice' я её хочу там увидеть и поэтому спрашиваю, как это сделать?

Ну можно сделать так:

Код:
private double CalcCurrentPrice(.....)
{
.
.
.
return curPrice;
}
public virtual void Execute(IContext ctx, ISecurity sec, double cPrice)
{
curPrice=cPrice;
.
.
.

}
Автор: ITCraft
Дата сообщения: 30.08.2010 19:22
Пишет Имя 'cPrice' отсутствует в текущем контексте.
Необходимо double cPrice; добавить или по другому как-нибудь сделать?

Спасибо за помощь.
Автор: blaro
Дата сообщения: 30.08.2010 19:25
ITCraft

Цитата:
Необходимо double cPrice; добавить или по другому как-нибудь сделать?

Ну добавте...

Добавлено:
Можете сделать так:

Код:
private double price=0;
private void CalcCurrentPrice(.....)
{
.
.
.
price=curPrice;
}
Автор: musicstashall
Дата сообщения: 30.08.2010 22:33
Ребята! Очень ищу помощи. Необходимо в среде VB.NET 3.x изобразить кнопки в PictureBox, изображения которых плавно бы менялись по событиям мыши, именно плавно, как например кнопка ПУСК в Vista или Seven, то есть одно изображение кнопки плавно переходило бы в другое. Исходные изображения помещаем в ImageList, всего три для трех событий:
PictureBox1_MouseMove
PictureBox1_MouseDown
PictureBox1_MouseLeave
Чую, решение очень близко и просто. Весьма и весьма буду благодарен за любую информацию, приближающую к достижению цели.
Здесь вопрос сформулирован более подробно: плавный переход одного изображения в другое
Автор: BlackVetal
Дата сообщения: 31.08.2010 05:20
musicstashall
Почитай про технологию WPF - я думаю найдеш много чего интересного ...
Автор: musicstashall
Дата сообщения: 03.09.2010 08:39
BlackVetal
Да, действительно богатейшая ниша для создания интерфейсов, три дня без отрыва изучал эту технологию, просто поглотила меня, спасибо. А не подскажешь, где чатятся умные любители этой технологии?
Автор: Qwerty93
Дата сообщения: 03.09.2010 14:09
Всем доброго времени суток, я уже писал о своей проблеме, но из-за занятости не было возможности, проследить за ответами на мою просьбу, поэтому попрошу помощи снова. Итак суть проблемы заключается в следующем:
Появилась нужда создать объемный фрактал. Полазив в интернете я нашел требуемую статью, собственно вот она! Но проблема заключается в том что я НИКОГДА не работал в серии программ Visual studio. Поэтому прошу у людей которые понимают в этом деле. У меня стоит Visual studio 2010. Помогите пожалуйста!
Автор: V0lt
Дата сообщения: 03.09.2010 16:09
Qwerty93

Цитата:
Но проблема заключается в том что я НИКОГДА не работал в серии программ Visual studio.

ты когда-нибудь программировал? на чем?
Автор: Qwerty93
Дата сообщения: 03.09.2010 17:01
V0lt
Нет никода
Автор: V0lt
Дата сообщения: 03.09.2010 19:24
Qwerty93

Цитата:
Нет никода

ну книжки сходи купи, почитай.
Автор: Qwerty93
Дата сообщения: 03.09.2010 19:42
V0lt
Действительно, как же я не додумался до такого? Думаю обойтись без похода в книжный ибо мне нужно знать программу только в пределах построения фигуры. Так как в вышеизложенной статье есть прилагаемые к ней файлы, то думаю освоение в рамках требуемой того ситуации пройдет успешно. Но без помощи профессионалов никуда не деться . . .
Автор: ComradG
Дата сообщения: 04.09.2010 18:10
Я уже сталкивался с такой проблебой - нужно было захучить клавишу Win на клаве во время отладки одной программы. Браться за чистый Си не хотелось, да и времени было мало, поэтому я написал тогда простой хучер на Си Шарпе. Правда тогда он представлял из себя обычное консольное приложение висевшее в процессах до тех пор, пока его не грохнешь в таскменеджере. Спустя время я вернулся к данной тулзе и написал его ГУИшную версию, которая сворачивается в трей, а потому для того, чтобы вырубить ее, достаточно заглянуть в контекстное меню. В общем вот
[more=код]using System;
using System.Drawing;
using System.Diagnostics;
using System.Windows.Forms;
using System.Runtime.InteropServices;

public class frmMain:Form
{
private const int WH_KEYBOARD_LL = 13;
private const int WM_KEYDOWN = 0x0100;
private static LowLevelKeyboardProc _proc = HookCallback;
private static IntPtr _hookID = IntPtr.Zero;

public frmMain()
{
InitializeComponent();
}

private Label lblCaption;
private Label lblHowdoit;
private Button btnExit;
private Button btnTray;
private NotifyIcon ntfContext;
private ContextMenu mnuContext;
private MenuItem mnuRestore;
private MenuItem mnuSplit;
private MenuItem mnuExit;

private void InitializeComponent()
{
this.lblCaption = new Label();
this.lblHowdoit = new Label();
this.btnExit = new Button();
this.btnTray = new Button();
this.ntfContext = new NotifyIcon();
this.mnuContext = new ContextMenu();
this.mnuRestore = new MenuItem();
this.mnuSplit = new MenuItem();
this.mnuExit = new MenuItem();
//
//lblCaption
//
this.lblCaption.Font = new Font("Microsoft Sans Serif", 9, FontStyle.Bold);
this.lblCaption.Location = new Point(71, 9);
this.lblCaption.Size = new Size(139, 23);
this.lblCaption.Text = "WinKey Hooker";
this.lblCaption.TextAlign = ContentAlignment.MiddleCenter;
//
//lblHowdoit
//
this.lblHowdoit.Location = new Point(12, 32);
this.lblHowdoit.Size = new Size(273, 29);
this.lblHowdoit.Text = "Press \"Tray\" if you wish block WinKey or \"Exit\" to leave this application.";
this.lblHowdoit.TextAlign = ContentAlignment.MiddleCenter;
//
//btnExit
//
this.btnExit.Location = new Point(12, 74);
this.btnExit.Text = "E&xit";
this.btnExit.Click += new EventHandler(btnExit_Click);
//
//btnTray
//
this.btnTray.Location = new Point(210, 74);
this.btnTray.Text = "&Tray";
this.btnTray.Click += new EventHandler(btnTray_Click);
//
//ntfContext
//
this.ntfContext.ContextMenu = this.mnuContext;
this.ntfContext.Icon = this.Icon;
//
//mnuContext
//
this.mnuContext.MenuItems.AddRange(new MenuItem[] { this.mnuRestore,
this.mnuSplit,
this.mnuExit } );
//
//mnuRestore
//
this.mnuRestore.Text = "Restore";
this.mnuRestore.Click += new EventHandler(mnuRestore_Click);
//
//mnuSplit
//
this.mnuSplit.Text = "-";
//
//mnuExit
//
this.mnuExit.Text = "Exit";
this.mnuExit.Click += new EventHandler(mnuExit_Click);
//
//frmMain
//
this.ClientSize = new Size(297, 111);
this.Controls.AddRange(new Control[] { this.lblCaption,
this.lblHowdoit,
this.btnExit,
this.btnTray } );
this.FormBorderStyle = FormBorderStyle.FixedSingle;
this.MaximizeBox = false;
this.StartPosition = FormStartPosition.CenterScreen;
this.Text = "WinKey";
this.Load += new EventHandler(frmMain_Load);
}

private static IntPtr SetHook(LowLevelKeyboardProc proc)
{
using (Process curProcess = Process.GetCurrentProcess())
using (ProcessModule curModule = curProcess.MainModule)
{
return SetWindowsHookEx(WH_KEYBOARD_LL, proc, GetModuleHandle(curModule.ModuleName), 0);
}
}

private delegate IntPtr LowLevelKeyboardProc(int nCode, IntPtr wParam, IntPtr lParam);

private static IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam)
{
if ((nCode >= 0) && (wParam == (IntPtr)WM_KEYDOWN))
{
int vkCode = Marshal.ReadInt32(lParam);
if (((Keys)vkCode == Keys.LWin) || ((Keys)vkCode == Keys.RWin))
{
return (IntPtr)1;
}
}
return CallNextHookEx(_hookID, nCode, wParam, lParam);
}

[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern IntPtr SetWindowsHookEx(int idHook, LowLevelKeyboardProc lpfn,
IntPtr hMod, uint dwThreadId);

[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern bool UnhookWindowsHookEx(IntPtr hhk);

[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern IntPtr CallNextHookEx(IntPtr hhk, int nCode,
IntPtr wParam, IntPtr lParam);

[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern IntPtr GetModuleHandle(string lpModuleName);

private void btnExit_Click(object sender, EventArgs e)
{
this.Close();
}

private void btnTray_Click(object sender, EventArgs e)
{
this.Hide();
ntfContext.Visible = true;
ntfContext.Text = "WinKey Hooker";
}

private void mnuRestore_Click(object sender, EventArgs e)
{
ntfContext.Visible = false;
this.Show();
}

private void mnuExit_Click(object sender, EventArgs e)
{
ntfContext.Visible = false;
Application.Exit();
}

[STAThread]
public static void Main()
{
_hookID = SetHook(_proc);
Application.EnableVisualStyles();
Application.Run(new frmMain());
UnhookWindowsHookEx(_hookID);
}
}[/more] Написано полностью руками без всякой VisualStudio, собрано через csc.exe. Версия фреймворка должна быть не ниже 2.0. Может кому пригодится в качестве примера.
Автор: JekaKot
Дата сообщения: 05.09.2010 10:15
Уважаемые спецы, помогите "сотворить" из этого что-то рабочее (конкретный случай, чтобы работало - из AutoCAD 2008 в Excel 2007)...
Просто в программировании - ноль, а функция перевода из AutoCAD в Excel очень нужна...
Автор: BlackVetal
Дата сообщения: 06.09.2010 06:02
musicstashall
Я сам толком еще не разбирался с этой технологией - поэтому мало что знаю про нее. А попробовать поискать можно на RSDN.ru, gotdotnet.ru. ну и никто еще не запрещал google.ru
Автор: ComradG
Дата сообщения: 06.09.2010 10:09
Кхе, кхе. Так как я не силен в Васике, но хочу разобраться с основами его синтаксиса (интереса ради), то спрашиваю вот о чем. Как вот этот кусок, написанный на C# перевести в VB.NET:
Код: public class CultureComparer : IComparer
{
public int Compare(object x, object y)
{
if (x is CultureInfo && y is CultureInfo)
{
CultureInfo c1 = (CultureInfo)x;
CultureInfo c2 = (CultureInfo)y;
return c1.Name.CompareTo(c2.Name);
}
else
{
throw new ArgumentException("Неверный тип данных");
}
}
}
Автор: Omicron_Persey_8
Дата сообщения: 06.09.2010 15:02
ComradG
Я в VB.NET не силен, но вот как-то так:

Код: Imports System.Globalization

Public Class CultureComparer
Implements IComparer
' Methods
Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements IComparer.Compare
If (Not TypeOf x Is CultureInfo OrElse Not TypeOf y Is CultureInfo) Then
Throw New ArgumentException("Wrong data type")
End If
Dim c1 As CultureInfo = DirectCast(x, CultureInfo)
Dim c2 As CultureInfo = DirectCast(y, CultureInfo)
Return c1.Name.CompareTo(c2.Name)
End Function

End Class
Автор: ComradG
Дата сообщения: 06.09.2010 15:54
Omicron_Persey_8
Спасибо за ответ. Нодо было мне действительно сперва прогуляться на msdn, чтобы не задавать дурацких вопросов Еще раз спасибо.
Автор: KChernov
Дата сообщения: 07.09.2010 10:02
JekaKot
А что собственно не устраивает?
Есть рабочий код (даже коментарии на русском).
Доступен автор кода (не проверял, но если у него такой развитый сайт - наверняка).
Автор: JekaKot
Дата сообщения: 07.09.2010 17:41
KChernov

Цитата:
А что собственно не устраивает?

Меня - все устраивает, кроме отсутствия возможности скачать откомпилированный модуль. Сами пробовали скачать?
Я же - не программист, а простой пользователь AutoCAD-а, из кода получать приложение не умею, да и не особо хочу разбираться - каждому свое...

Вопрос же снимается - автор помог...
Автор: LuckyStrike
Дата сообщения: 08.09.2010 19:01
Доброго времени суток! помогите плиз с такой задачкой..в С# не получаеться, вот есть код на С++:
http://khpi-iip.mipk.kharkiv.edu/library/datastr/book_sod/kgsu/din_0119.html
Автор: Omicron_Persey_8
Дата сообщения: 08.09.2010 21:37
LuckyStrike

Цитата:
помогите плиз с такой задачкой

И в чем затруднения?

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102

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


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