Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Программирование (VB,C#,ASP,.NET): новости, советы, примеры


Выпуск # 737

Приветствую вас, любители высоких технологий! Вот и очередной выпуск рассылки. За неделю на сайте появилось много новых и интересных материалов, некоторые из которых вы сможете увидеть в этом выпуске.
Надеюсь, этот выпуск будет интересен для вас. Если вы хотите увидеть в следующих выпусках что-то конкретное, напишите мне об этом на ящик subscribe@kbyte.ru.


Содержание выпуска

Читайте в этом выпуске:

Если у вас есть вопросы по программированию или работе с компьютером, не стесняйтесь, спрашивайте.

Форумы Kbyte.Ru

На форумах Kbyte.Ru постоянно появляются новые интересные темы и обсуждения. В этом выпуске представлены лишь новые темы, с момента прошлой рассылки.

Кстати, любой желающий может на форумах Kbyte.Ru совершенно свободно получить помощь грамотных специалистов в области программирования, да и в целом информационных технологий.

Задать свой вопрос прямо сейчас

И так я решил задать тот же вопрос на другом форуме и мне ответили думаю вам будет интересно
Imports Gif.Components
Imports System.Drawing.Imaging
Class Form1
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal er As System.EventArgs) Handles Button1.Click
 
        ' Создаём гиф
        ' Здесь пути для файлов
        Dim imageFilePaths As [String]() = New [String]() {"C:\01i.png", "C:\02i.png", "C:\03i.png"}
        Dim outputFilePath As [String] = "C:\test.gif"
        Dim e As New AnimatedGifEncoder()
        e.Start(outputFilePath)
        e.SetDelay(500) ' Здесь интервал
        '-1:не повторять,0:повторять бесконечно
        e.SetRepeat(0)
        Dim ie As Integer = 0, counte As Integer = imageFilePaths.Length
        While ie < counte
            e.AddFrame(Image.FromFile(imageFilePaths(ie)))
            ie += 1
        End While
        e.Finish()
        ' сохранить гиф
 
        Dim outputPath As String = "C:\"
        Dim gifDecoder As New GifDecoder()
        gifDecoder.Read("C:\test.gif")
        Dim i As Integer = 0, count As Integer = gifDecoder.GetFrameCount()
        While i < count
            Dim frame As Image = gifDecoder.GetFrame(i)
 
            frame.Save(outputPath & Guid.NewGuid().ToString() & ".png", ImageFormat.Png)
            i += 1
        End While
    End Sub
 
End Class
и либа
так у меня возникли еще вопросы как настроить размер выходного изображения?

[- к содержанию -]

Ответ #1 @Алексей Немиро 25.07.2013 23:07
тот же вопрос
Какой именно вопрос? :)

Как создать gif? Этот что ли?

Приведенный код идентичен коду из ссылки на статью по теме из моего ответа, даже комментарии в том же месте и c тем же содержанием. Отличие только в языке :) И код судя по квадратным скобкам в String, конвертирован на Visual Basic .NET конвертером кода.

Ссылка на статью: http://www.codeproject.com/Articles/11505/NGif-Animated-GIF-Encoder-for-NET

Там есть эта библиотека в исходном виде. Можно посмотреть код.

Но проще, через Обозреватель объектов (Ctrl + Alt + J), о котором я говорил в недавней теме.


Либо методом тыка, поставив точку, после имени экземпляра класса, и найдя что-нибудь связанное с размером. Размер по английски - Size.
Экземпляр класса, в данном случае - это e.


Надеюсь, это понятно :)

Если размер исходных изображений меньше, то их тоже можно увеличить программно, по отдельности.

[- к содержанию -]

Ответ #2 @Crash666 25.07.2013 23:14
Ка всегда спасаете

[- к содержанию -]

Ответ #3 @Shark1 25.07.2013 23:52
Если хочеш понять работу этой библиотеки, то вот тебе бонус :исходники на cs и на vb этой библиотеки.

[- к содержанию -]

Добавить свой ответ в эту тему
Создать файл @i32 25.07.2013 18:24
Привет всем . Простенький вопрос..Создать файл Рядом с программой (Имея ввиду ПУТЬ)
У меня создается где угодно только не где надо..
Конфигурация такая..
 Dim ini As New IniFile("название файла")
Что пробывал
 Dim
strFilePath As String = System.AppDomain.CurrentDomain.BaseDirectory ' определяю путь своей проги
 Dim ini As New IniFile(strFilePath + "config.ini")
Или
Dim ini As New IniFile(".\config.ini")[/c]Спасибо..

[- к содержанию -]

Ответ #1 @Алексей Немиро 25.07.2013 19:00
'четыре
разных варианта
Application.StartupPath
System.IO.Directory.GetCurrentDirectory()
System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly.Location)
Dim AppPath As String = New System.IO.DirectoryInfo(".").FullName

Для соединения частей пути в один, лучше использовать метод Combine класса Path:
System.IO.Path.Combine("C:\", "test", "test.txt")

[- к содержанию -]

Ответ #2 @Crash666 25.07.2013 19:19
Вроде как я понял можно так:
Dim ini As New IniFile(application.startuppath & "\Config.ini")
?

[- к содержанию -]

Ответ #3 @i32 25.07.2013 19:50
Projects\Jurnal\Jurnal\bin\Debug КАК БЫ СУДА НАДО
application - не катит " является не однозначным.."- ошибка такая.
 Dim strFilePath As String = System.IO.Directory.GetCurrentDirectory()
    Dim strFilePath1 As String = System.IO.Path.Combine(strFilePath, "Config.ini")
 Dim ini As New IniFile(strFilePath1)
куда сохранил..Теперь самому не найти..

[- к содержанию -]

Ответ #4 @i32 25.07.2013 19:58
Dim strFilePath As String = System.IO.Directory.GetCurrentDirectory()
    Dim ini As New IniFile(System.IO.Path.Combine(strFilePath, "Config.ini"))
Вот так пошло ..Спасибо..

[- к содержанию -]

Ответ #5 @Алексей Немиро 25.07.2013 22:46
application - не катит " является не однозначным.."- ошибка такая.
Чтобы исправить подобную ошибку, достаточно определить, в каком пространстве имен находит класс Application.
В этом может помочь Обозреватель объектов (Ctrl + Alt + J).

В строку поиска можно указать имя класса или имя метода. Лучше начинать с метода, в данном случае - StartupPath:


На худой конец можно воспользоваться Google, сделав запрос типа: класс Application в Windows Forms




Таким образом можно использовать классы с неоднозначными именами, указав полный путь к классу:
Dim strFilePath As String = System.Windows.Forms.Application.StartupPath

На будущее, это касается каждого из здесь присутствующих, и относится не только к классу Application, но и к любой другой ошибке с формулировкой: "является неоднозначным".

[- к содержанию -]

Добавить свой ответ в эту тему · В теме есть еще 6 ответов. Смотреть все ответы.
Среда Visual Basic STUDIO’2010 Professional
Как поставить в область компонентов формы компонент "WebBrowser", находящийся на Панели элементов в папке "Стандартные элементы управления". На вкладку элемент управления "WebBrowser" ставится. Если перетащить из элементов управления на область компонентов формы компонент "WebBrowser", то он не ставится.
СПАСИБО!

[- к содержанию -]

Дорогие товарищи, Форумчане.
Я объясню программно:
g.DrawImage(Image.FromFile("D:/Izo/sn19.gif"),x1,y1)
...И необходимый рисунок на место.Но этот адрес заложен программно.
Мне-же необходимо подключить это извне,вот так:
Dim t1 As String = txt.Text       'c textbox-a
        g.DrawImage(Image.FromFile(" t1 "),x1,y1)
Но у меня этот трюк не получается. Извините за мой хаотичный вопрос.
С уважением, Akiva

[- к содержанию -]

Ответ #1 @Алексей Немиро 22.07.2013 12:12
g.DrawImage(Image.FromFile(txt.Text ),x1,y1)

[- к содержанию -]

Ответ #2 @Akiva 22.07.2013 18:32
Спасибо.Норма.Хорошего Вам дня!
С уважением, Akiva

[- к содержанию -]

Добавить свой ответ в эту тему
Как с помощью ComboBox1 можно на форме создать динамическую таблицу. В ComboBox1 создается перечень (для выпадающего меню например 3*3, 4*4, 5*5) после чего на форме должна создаваться соответствующая динамическая таблица для ввода данных 3*3, 4*4 или 5*5. И как считать с такой таблицы информацию в динамический массив.

[- к содержанию -]

Ответ #1 @Алексей Немиро 22.07.2013 12:45
О какой именно таблице идет речь? Элементе TableLayoutPanel?
Все также, как и с любым другим элементом:
    Dim tlp As New System.Windows.Forms.TableLayoutPanel()'создаем объект
    tlp.AutoSize = True'авторазмер
    'добавляем колонки
    tlp.ColumnCount = 2'две колонки
    tlp.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.AutoSize))'авторазмер
    tlp.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.AutoSize))
    'добавляем строки
    tlp.RowCount = 2'две строки
    tlp.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.AutoSize))'авторазмер
    tlp.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.AutoSize))
    'добавляем таблицу на форму
    Me.Controls.Add(tlp)
    'заполняем ячейки текстовыми полями
    tlp.Controls.Add(New TextBox() With {.Text = "1"}, 0, 0)'0 колонка, 0 строка
    tlp.Controls.Add(New TextBox() With {.Text = "2"}, 1, 0)'1 колонка, 0 строка
    tlp.Controls.Add(New TextBox() With {.Text = "3"}, 0, 1)'0 колонка, 1 строка
    tlp.Controls.Add(New TextBox() With {.Text = "4"}, 1, 1)'1 колонка, 1 строка

    'получить элементы можно из коллекции Controls, как я уже говорил, это одинаково для всех контейнеров
    Dim values As String = ""
    For Each c As Control In tlp.Controls
      If Not String.IsNullOrEmpty(values) Then values &= " "
      values &= CType(c, TextBox).Text
      'tlp.GetPositionFromControl(c).Column ' номер колонки, в которой расположен элемент
      'tlp.GetPositionFromControl(c).Row 'номер строки, в которой расположен элемент
    Next
    MsgBox(values)
Таблиц, в классическом понимании, в Windows Forms нет.

Еще можно использовать DataGridView. Либо сделать свой контрол, который будет располагать элементы, как в таблице.

[- к содержанию -]

Ответ #2 @Дерепа Алексей 22.07.2013 15:51
Нужно создать таблицу приблизительно похожую на EXEL при выборе в ComboBox1 нужное выпадающее поле ( 3*3, 4*4, 5*5) должна создаваться таблица для ввода данных!
а как использовать DataGridView о котором Вы говорили, и как с этим компонентом работать?

[- к содержанию -]

Ответ #3 @Алексей Немиро 22.07.2013 19:02
а как использовать DataGridView
Слишком широкий вопрос :)

Если в двух словах, то так:
DataGridView1.ColumnCount = 3 'три колонки
DataGridView1.Rows.Add("1", "2", "3") 'добавляем строку с данными для каждой колонки
DataGridView1.Rows.Add("4", "5", "6") 'добавляем строку с данными для каждой колонки
Что касается внешнего вида и поведения DataGridView, то все можно настроить визуально, меняя свойства в редакторе.

[- к содержанию -]

Ответ #4 @Дерепа Алексей 23.07.2013 19:14
Я попробовал сначала поработать с TableLayoutPanel вроде бы все получилось добавить на форму то количество TextBox какое мне нужно, только почему то когда я пытаюсь изменить количество TextBox-ов, то почему то форма не обновляется! попытался считать автоматически с TextBox информацию, но у меня не получилось считывать у динамически изменяющегося количества этих объектов! подскажите как можно это сделать:
1) при повторном нажатии на Button1 обновить количество объектов TextBox
2) считать эту информацию в массив из TextBox
Вот мой немного измененный код:

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim tlp As New System.Windows.Forms.TableLayoutPanel() 'создаем объект
        Dim aaa, kol As Integer
        tlp.AutoSize = True 'авторазмер
        kol = CDbl(TextBoxSize.Text) - 1

        'добавляем колонки
        tlp.ColumnCount = kol + 1  'колическтво колонок 
        tlp.RowCount = kol  'колическтво строк

        For i As Integer = 0 To kol
            tlp.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.AutoSize)) 'авторазмер
        Next
        For i As Integer = 0 To kol
            tlp.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.AutoSize)) 'авторазмер
        Next


         'добавляем таблицу на форму
        Me.Controls.Add(tlp)
        For i As Integer = 0 To kol
            For j As Integer = 0 To kol
                tlp.Controls.Add(New TextBox() With {.Text = "0"}) '0 колонка, 0 строка
            Next
        Next
    End Sub

[- к содержанию -]

Ответ #5 @Алексей Немиро 24.07.2013 10:54
При повторном создании, нужно старые данные полностью удалять.
tlp.Controls.Add(New TextBox() With {.Text = "0"}) '0 колонка, 0 строка
Здесь не указана ни строка, ни колонка. Скорее всего элементы будут вставлены последовательно. Лучше указывать строку и колонку явно, как я показывал в примере выше.

Вот пример с DataGridView. С ним все будет намного проще, если разобраться.
Public Class Form1

  Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    cmbColumns.SelectedIndex = 2
    cmbRows.SelectedIndex = 2
  End Sub

  Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    'удаляем старые данные
    DataGridView1.Rows.Clear()
    DataGridView1.Columns.Clear()
    'создаем новые столбцы
    For i As Integer = 0 To cmbColumns.SelectedIndex
      DataGridView1.Columns.Add(i.ToString(), i.ToString())
    Next
    'строки
    For i As Integer = 0 To cmbRows.SelectedIndex
      DataGridView1.Rows.Add()
    Next
  End Sub

  Private Sub DataGridView1_CellClick(sender As System.Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick
    DataGridView1.BeginEdit(True) 'запус режима редактирования при клике по ячейке
  End Sub

  Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
    If DataGridView1.Columns.Count <= 0 OrElse DataGridView1.Rows.Count <= 0 Then Return 'ничего нет
    Dim arr(DataGridView1.Columns.Count - 1, DataGridView1.Rows.Count - 1) As Double 'создаем массив
    For Each row As DataGridViewRow In DataGridView1.Rows 'листаем строки
      For Each cell As DataGridViewCell In row.Cells 'листаем ячейки
        arr(cell.ColumnIndex, cell.RowIndex) = CType(cell.Value, Double) 'добавляем данные из ячейки в массив
      Next
    Next
    'тут будет заполненный массив arr
  End Sub

End Class

[- к содержанию -]

Добавить свой ответ в эту тему · В теме есть еще 6 ответов. Смотреть все ответы.
Проводим обучение торговле на Американском Фондовом Рынке с дальнейшим курированием.
В обучение включены прибыльные торговые стратегии проверенные на практике.
Email: interactivetraders.pro@gmail.com
Телефон: +380962813265
http://interactivetraders.pro

[- к содержанию -]

Привет всем!
У меня такая проблема. Я написал весь сайт на asp. Теперь нашёл JQuery из интернета, который мне нужен для этого сайта, но здесь используется один класс который написан на php.
Пожалуйста помогите перевести этот класс на asp.
Спасибо!!!

<?php
$objMapPhoto = new MapPhoto();
$objMapPhoto->getPlaces();
class MapPhoto{
	public function __construct(){ }
	public function getPlaces(){		
		$album 		= simplexml_load_file('album.xml');		
		$albumName	= $album->name;
		$description= $album->description;		
		foreach( $album->places->place as $place )
		{			
			$location 		= $place->location;
			$lat 			= $location->lat;
			$lng 			= $location->lng;			
			$name			= $place->name;			
			$photosArr		= array();
			foreach( $place->photos->photo as $photo )
			{
				$photosArr[]	= array(
					'index'			=> (integer)count($photosArr),
					'thumb' 		=> (string)$photo->thumb,
					'source' 		=> (string)$photo->source,
					'description' 	=> (string)$photo->description,
					'lat'			=> (float)$photo->location->lat,
					'lng'			=> (float)$photo->location->lng
				);
			}			
			$placesArr[]	= array( 'name' => (string)$name, 'lat' => (float)$lat, 'lng' => (float)$lng, 'photos' => $photosArr );			
		}		
		$encoded = json_encode( array( 'name' => (string)$albumName, 'description' => (string)$description, 'places' => $placesArr ) );
		echo $encoded;
	}
}
?>

[- к содержанию -]

Ответ #1 @Алексей Немиро 21.07.2013 11:12
По работе с XML в классическом ASP, будет примерно так:
var doc = Server.CreateObject("MSXML2.DOMDocument");
doc.loadXML("данные из файла album.xml");

var nodes = doc.selectNodes("album/places/place");
foreach( $album->places->place as $place )
Это все чтение XML.
echo $encoded;
Response.Write(encoded);

[- к содержанию -]

Добавить свой ответ в эту тему

Все темы и обсуждения

Исходные коды

Circular list

Visual Basic .NET: Интерфейс @Shark1 23.07.2013 20:15
Пример построения простого кругового списка c применением элемента PathListBox.

К данном исходному коду прилагаются файлы примеров. Скачать.

[- к содержанию -]

TaskbarItemInfo Overlay Icon

Visual Basic .NET: Интерфейс @Shark1 20.07.2013 17:50
Пример динамического изменения иконки состояния приложения в TaskbarItemInfo.

К данном исходному коду прилагаются файлы примеров. Скачать.

[- к содержанию -]

Watermark TextBox

Visual Basic .NET: Интерфейс @Shark1 20.07.2013 16:13
Пример создания текстового поля с водяным знаком в приложении WPF.

К данном исходному коду прилагаются файлы примеров. Скачать.

[- к содержанию -]

Все исходные коды

Вакансии в IT

Программист-консультант

Россия, Красноярск | Работа в офисе | 45 000,00 KBP

Программист PHP

Россия, Новосибирск | Работа в офисе | 30 000,00 KBP

Веб-дизайнер

Россия, Новосибирск | Работа в офисе | 35 000,00 KBP

Программист-технолог

Россия, Самара | Работа в офисе | 90 000,00 KBP

Программист, разработчик

Россия, Ростов-на-Дону | Работа в офисе | 40 000,00 KBP

Веб-дизайнер

Россия, Ростов-на-Дону | Работа в офисе | 20 000,00 KBP

Специалист со знаниями SEO

Россия, Ростов-на-Дону | Работа в офисе | 80 000,00 KBP

Программист

Россия, Казань | Работа в офисе | 35 000,00 KBP

Инженер программист

Россия, Новосибирск | Работа в офисе | 20 000,00 KBP

Программист 1С 8

Россия, Ростов-на-Дону | Работа в офисе

Все вакансии в IT · Создать резюме

[- к содержанию -]

Новости мира IT

Google показала вещательное устройство Chromecast

Google сегодня представила "простой и недорогой" способ передачи интернет-видео на телевизоры. Компания показала Chromecast - небольшое устройства, позволяющее передавать в реальном времени контент на телевизор по WiFi-сети, используя компьютер, телефон или планшет как пульт дистанционного управления.

В Google говорят, что изюминка Chromecast в том, что устройство не требует настройки, обучения работы и работает со всеми современными платформами сразу. При этом, стоит Chromecast всего 35 долларов, что почти втрое дешевле, чем ранее показанное похожее устройство Nexus Q. В США поставки Chromecast уже начались.

5-сантиметровое устройство похоже на USB-флешку, но размещается оно в порту HDMI на телевизоре с поддержкой HD-видео. Оно способно взаимодействовать с ПК, ноутбуком, смартфоном или планшетом, получая от них контент и команды. Сундар Пичаи, старший вице-президент Google, говорит, что Chromecast поддерживает как Android, так и iOS-устройства.

На презентации компания специально использовала Windows-ноутбук и iPhone для демонстрации Chromecast.

25.07.2013 11:26 · Категория: Железо · Источник: CyberSecurity.ru

[- к содержанию -]

Google перевыпустила планшет Nexus 7

Google анонсировала новое поколение планшетов Nexus 7. От предшественников аппарат отличается более высоким (1920 на 1080 точек) разрешением экрана и более мощной начинкой. Планшет работает на Android 4.3. В США он будет стоить от 230 до 350 долларов в зависимости от объема памяти.

25.07.2013 11:25 · Категория: Железо · Источник: Lenta.ru

[- к содержанию -]

«Яндекс.Новости» научились анализировать посты из соцсетей

В новостном агрегаторе «Яндекс.Новости» появился раздел «Мои новости», содержимое которого настраивается в зависимости от предпочтений пользователя. Он может подключить к сервису свои аккаунты в соцсетях, после чего будет видеть на странице новости и ссылки, которыми поделились его друзья. Там же можно выбрать «любимые» СМИ.

25.07.2013 11:25 · Категория: Бизнес в IT · Источник: Lenta.ru

[- к содержанию -]

Все новости


Подпишитесь на тематические RSS-ленты Kbyte.Ru, чтобы быть в курсе последних новостей:

Основная лента · Форумы (темы и сообщения) · Visual Basic 5.0/6.0 · Visual Basic .NET · C# (Си шарп) · Delphi · JavaScript · ActionScript · ASP .NET · ASP .NET MVC

Ищите Kbyte.Ru в социальных сетях FaceBook, ВКонтакте, Twitter.

Если вы занимаетесь программированием, то наверняка вам пригодятся хитрые инструменты.


Международный портал для программистов и разработчиков Kbyte.Ru основан в 2006 году. Целью портала является объединение программистов и специалистов IT-бизнеса, студентов и преподавателей для обмена опытом и знаниями, оказания помощи во всех делах и начинаниях в области IT.
Kbyte.Ru является парнёром компаний Mail.Ru Group, WebMoney Transfer, Ozon.Ru и др.
Выпуск рассылки подготовлен автоматически. Все права на материалы выпуска принадлежат Kbyte.Ru если иное не указано отдельно.


В избранное