Вверх ↑
Этот топик читают: Гость
Главный модератор
Ответов: 2999
Рейтинг: 396
#541: 2013-10-13 10:15:24 ЛС | профиль | цитата
Асинхронный поток ввода/вывода AsyncStreamReader/AsyncStreamWriter:
AsyncStreamIO
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
2
файлы: 1asyncstreamio.png [123KB] [852]
Голосовали:foksov, Konst
Главный модератор
Ответов: 2999
Рейтинг: 396
#542: 2013-10-18 21:15:04 ЛС | профиль | цитата
Работа с архивом в zip-формате:
ZipArchiveManager
К сожалению, классы для работы с zip-архивом доступны начиная с версии framework 4.5.
Это означает, что компоненты на XP и ниже работать не будут.
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
файлы: 1ziparchivemanager.png [188.6KB] [740]
Главный модератор
Ответов: 2999
Рейтинг: 396
#543: 2013-10-21 10:41:54 ЛС | профиль | цитата
Реализации drag-and-drop механизма на примере перетаскивания текста: DragEventArgs
Добавление файла в zip-архив:
DropFileToZipArchive
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
файлы: 1dropfiletoziparchive.png [131.3KB] [739]
Главный модератор
Ответов: 2999
Рейтинг: 396
#544: 2013-10-23 09:29:50 ЛС | профиль | цитата
Оптимизация целевого кода повторным вызовом создаваемых методов:
До оптимизации
Целевой код до оптимизации

#cpp
...
private void onClick2(object sender, System.EventArgs args) { // Button2:"Push1"
StringBuilder4.Clear();
foreach (var ForEach5 in TextBox6.Text) {
StringBuilder4.AppendFormat("{0}, ", ForEach5);
}
StringBuilder4.AppendLine();
TextBox8.AppendText(StringBuilder4.ToString());
}

private void onClick9(object sender, System.EventArgs args) { // Button9:"Push2"
StringBuilder4.Clear();
foreach (var ForEach5 in TextBox6.Text) {
StringBuilder4.AppendFormat("{0}, ", ForEach5);
}
StringBuilder4.AppendLine();
TextBox8.AppendText(StringBuilder4.ToString());
}
...
После оптимизации
Целевой код после оптимизации

#cpp
...
private void onClick2(object sender, System.EventArgs args) { // Button2:"Push1"
Method4();
}

private void onClick11(object sender, System.EventArgs args) { // Button11:"Push2"
Method4();
}

private void Method4()
{
StringBuilder6.Clear();
foreach (var ForEach7 in TextBox8.Text) {
StringBuilder6.AppendFormat("{0}, ", ForEach7);
}
StringBuilder6.AppendLine();
TextBox10.AppendText(StringBuilder6.ToString());
}
...

Пример использования оптимизации при работе с zip-архивом: http://svn.hiasm.com/packs/CNET/Example/files/ZipArchiveManager.sha
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
файлы: 2usingmethod.png [7.5KB] [834], withoutmethod_.png [4.1KB] [618]
Ответов: 758
Рейтинг: 112
#545: 2013-10-23 12:21:04 ЛС | профиль | цитата
Nic, Может я что не так понял. Но, разве не проще сделать автоматическое создание метода в Hub и HubEx, если есть 2-е и больше присоединенные входные точки
карма: 1

0
Гость
Ответов: 17029
Рейтинг: 0
#546: 2013-10-23 12:25:21 правка | ЛС | профиль | цитата


Редактировалось 4 раз(а), последний 2022-09-20 02:13:09
карма: 0

0
Ответов: 4628
Рейтинг: 749
#547: 2013-10-23 12:26:03 ЛС | профиль | цитата
Выше - я.
карма: 26

0
Ответов: 758
Рейтинг: 112
#548: 2013-10-23 12:34:59 ЛС | профиль | цитата
167-19-130-213.static.lvi писал(а):
Только в таком случае хаб не будет пропускать данные из потока
В методе добавляешь входную переменную и вызываешь с подстановкой входных данных
Получится примерно так
private void onClick2(object sender, System.EventArgs args) { // Button2:"Push1"
  Method4(3);
}

private void onClick11(object sender, System.EventArgs args) { // Button11:"Push2"
  Method4(4);
}

private void Method4(data)
{
  ... здесь используем data
}
карма: 1

0
Ответов: 4628
Рейтинг: 749
#549: 2013-10-23 12:46:38 ЛС | профиль | цитата
Примерно так. Вот только данные на разные входы могут приходить разных типов. А код, который их будет обрабатывать, должен ориентироваться на какой-то один. Эта проблема возникает (для типизированных языков) при текущей технологии генерации кода, когда тип данных определяется и преобразуется на этапе генерации.
В пакете Delphi такой проблемы нет, но есть другая - конвертация типов в runtime.
карма: 26

0
Главный модератор
Ответов: 2999
Рейтинг: 396
#550: 2013-10-23 18:18:39 ЛС | профиль | цитата
Вызов метода с параметрами
c# code

#cpp
...
private void onClick2(object sender, System.EventArgs args) { // Button2:"Push"
Method4("HiAsm Studio!");
}

private void onClick7(object sender, System.EventArgs args) { // Button7:"Push"
Method9("HiAsm", "Studio", "!");
}

private void Method4(string p1)
{
MessageBox.Show(p1);
}

private void Method9(string p1, string p2, string p3)
{
MessageBox.Show(String.Format(FormatStr10, p1, p2, p3));
}
...
Что касается вопросов, прозвучавших выше по-поводу hub с функционалом, аналогичным представленным компонентами Method и DoMethod, то этот вариант рассматривался разработчиками, и пришли к мысли, что, переделав hub таким образом, получим тот же результат, только с другой иконкой. Поэтому, если кто-нибудь предложит свой вариант hub'a с новым функционалом - you are welcome...
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
файлы: 1domethodwithparams.png [9.5KB] [633]
Ответов: 4628
Рейтинг: 749
#551: 2013-10-24 14:59:29 ЛС | профиль | цитата
Nic, я тут к последнему примеру не совсем понял: а если по первой кнопке DoMethod будет вызван с параметрами одного типа, а по второй - тот же самый метод, но с другими типами? Вроде такого:

#cpp
private void onClick2(object sender, System.EventArgs args) { // Button2:"Push"
Method9(1, 2, 3);
}

private void onClick7(object sender, System.EventArgs args) { // Button7:"Push"
Method9("HiAsm", "Studio", "!");
}
Или такой случай предусмотрен и не может возникнуть?
карма: 26

0
Главный модератор
Ответов: 2999
Рейтинг: 396
#552: 2013-10-24 17:10:00 ЛС | профиль | цитата
Netspirit писал(а):
Или такой случай предусмотрен и не может возникнуть?

Netspirit, Вы уже сами отвечали на свой вопрос:
Netspirit писал(а):
... при текущей технологии генерации кода, когда тип данных определяется и преобразуется на этапе генерации.

c# code

#cpp
...
private void onClick7(object sender, System.EventArgs args) { // Button7:"Push"
}

private void onClick13(object sender, System.EventArgs args) { // Button13:"Push"
Method9((1).ToString(), (2).ToString(), (3).ToString());
}
...
Реализовано это введением свойства «список типов параметров метода»:
PropertiesList

карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
файлы: 1propertieslist.png [34.5KB] [560]
Ответов: 4628
Рейтинг: 749
#553: 2013-10-24 17:56:23 ЛС | профиль | цитата
Ага, это и интересовало. Спасибо.
карма: 26

0
Ответов: 758
Рейтинг: 112
#554: 2013-10-24 18:00:52 ЛС | профиль | цитата
Nic писал(а):
Поэтому, если кто-нибудь предложит свой вариант hub'a с новым функционалом - you are welcome...

Я бы с удовольствием сделал, но очень тяжело разобраться в коде создания метода. Ниже приведу измененный код.
Nic, помоги создать метод с названием this.codename
hihub.rar
карма: 1

0
файлы: 1hihub.rar [535B] [271]
Главный модератор
Ответов: 2999
Рейтинг: 396
#555: 2013-10-24 19:28:21 ЛС | профиль | цитата
code_32128.txt
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
1
файлы: 1code_32128.txt [1.3KB] [351]
Голосовали:miver
Сообщение
...
Прикрепленные файлы
(файлы не залиты)