Рассылка закрыта
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Программирование (VB,C#,ASP,.NET): новости, советы, примеры
Выпуск # 744Друзья! Прошло совсем мало времени с момент последнего выпуска, и вот уже новый! Удивительно, как быстро летит время в Интернете, сколько всего нового происходит ежедневно, да что там, ежесекундно. И Kbyte.Ru в этом плане не исключение, на сайте столько всего произошло, столько всего, что многое даже и не влезло в этот выпуск! И кто только придумал ограничения скорости интернет-соединения и объемов писем! Эх..., благо на сайте есть живая лента событий, которая не даст потеряться среди гущи
событий. Содержание выпускаЧитайте в этом выпуске: Если у вас есть вопросы по программированию или работе с компьютером, не стесняйтесь, спрашивайте.Форумы Kbyte.RuНа форумах Kbyte.Ru постоянно появляются новые интересные темы и обсуждения. В этом выпуске представлены лишь новые темы, с момента прошлой рассылки. Кстати, любой желающий может на форумах Kbyte.Ru совершенно свободно получить помощь грамотных специалистов в области программирования, да и в целом информационных технологий. Задать свой вопрос прямо сейчас Мои извращения с Pure Basic-om @Akiva 12.09.2013 04:12 Поиск слов в текстовом файле @Scryaga 11.09.2013 19:17 Доброго времени суток,форумчане! Понаблюдал я за тем,как моя супруга мучается с угадыванием слов в игре на "Одноклассниках", в которой предлагается разгадать смысл двух картинок.В текстовых полях расположен массив символов(букв),который участвует в формировании двух слов,являющимися синонимами, а так-же, смыслом тех двух картинок.На первый взгляд,мне показалось,что я могу ей помочь запросто! Но,приступив к написанию приложения,облегчающего поиск нужных слов с заданным набором букв,я наткнулся на ряд не знакомых мне функций и методов.Из выше сказанного вырисовывается вопрос:Как на основе набора символов найти в текстовом файле(русский словарь,162500 слов) слова,в которых и сожержатся те символы? Слова могут иметь разное количество знаков. Начал с данного материала: Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load 'Копируем строки текстового файла в textbox Try Dim fileReader As New System.IO.StreamReader("Words.txt", System.Text.Encoding.GetEncoding(1251)) 'Dim str() As String Do While fileReader.Peek >= 0 TextBox3.Lines = fileReader.ReadToEnd.Split(" ".ToCharArray, 1) Loop fileReader.Close() Catch ex As Exception MsgBox(ex.Message) End Try TextBox4.Text = TextBox3.Lines.Length & vbTab & "строк" End Sub Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click '1 вариант -------------------------------------------------------------------------------------- 'Читаем содержимое файла в массив Dim Lines() As String = IO.File.ReadAllLines("Words.txt", System.Text.Encoding.GetEncoding(1251)) 'запрашиваем искомый набор символов. Dim SurName As String = InputBox("Введите слово для поиска", DefaultResponse:="авскимт") ' Если ничего не ввели, выходим из процедуры If SurName.Length = 0 Then Exit Sub 'Перебираем все строки массива For i As Integer = 0 To Lines.GetUpperBound(0) 'Если в соответствующей строке есть хоть одна буква If Lines(i).IndexOfAny(SurName.ToCharArray, 0) <> -1 Then TextBox5.Text = Lines(i) 'Добавляем эту строку к текстовому полю End If Next '2 вариант--------------------------------------------------------------------------------------------- 'Dim _text As String = "В строке найти слова, в которых есть нужные символы и вывести эти слова в другое текстовое поле" 'Dim words As String 'Dim _split() As String = _text.Split(" ") 'For Each words In _split ' ' If words.Length Mod 2 = 0 Then ' If words.Contains(TextBox6.Text) Then 'текстовое поле с набором искомых символов ' TextBox5.Lines = words.Split(" ") ' End If ' 'End If 'Next End Sub Ответ #1 @Shark1 11.09.2013 21:33 Доброго времени суток,форумчане! налей ей коньячка и проблема разрешится ... Ответ #2 @Scryaga 12.09.2013 05:15 Shark1,я вполне разделяю
твою иронию,и твой ответ можно было бы принять за правильный и на этом успокоиться,но я,всё-таки, надеялся на ответ по теме.На данный момент главным занятием для меня является строительство,и для того,что-бы развеяться,я частенько прибегаю к возможности оградиться от всего и планомерно и углублённо изучать такой прекрасный(на мой взгляд) язык программирования, коим является BASIC.Во всех самоучителях,которые были мною изучены(громко сказано!)даются весьиа поверхностные материалы,а по-сему,мне очень интересно обращаться на форум со своим вопросом. Для уточнения я могу переформулировать свой вопрос:Какими методами искать слова в текстовом файле, если искомое слово,к примеру,состоит из пяти символв и должно иметь буквы,представленные в случайном порядке(их количество может быть больше пяти). В коде,который я представил выше,ищется всего-лишь одно слово,что не удовлетворяет моей задаче. Если кто подскажет,в каком направлении рыть,буду признателен. Ответ #3 @Crash666 12.09.2013 08:24 Scryaga, я думаю вам поможет моя сарая тема. Там правда еще есть подсветка текста, но я думаю вы в силах изменить код под себя. Клик Ответ #4 @Алексей Немиро 12.09.2013 11:48 Как на основе набора символов найти в текстовом файле(русский словарь,162500 слов)Можно использовать регулярные выражения, например: ^([кбайт-[цуенгшщзхъфывпролджэячсмиью]+)\b (искать-(исключая)) - символы в квадратных скобках + - не менее одного символа \b - до конца слова Либо листать слова по одному и проверять, подходит оно под шаблон или нет: Dim words As New List(Of String)'это может быть просто массив words.Add("кбайт") words.Add("перебайт") words.Add("байт") Dim result As New List(Of String) For Each word As String In words If Regex.IsMatch(word, "^([кбайт-[цуенгшщзхъфывпролджэячсмиью]+)$", RegexOptions.IgnoreCase) Then result.Add(word)'слово подходит, добавляем в результат End If Next MsgBox(String.Join(vbCrLf, result.ToArray()) Имеемя 2 запроса: "SELECT COUNT(*) FROM [Pensioner]" "SELECT * FROM [Pensioner] WHERE IsNull(Address)" Были выбраны записи и помещены, допустим, в DataGridView А их число помещено в переменную Dim returnValue As integer Мой вариант неправильный: "SELECT COUNT(*) FROM [Pensioner] WHERE IsNull([Address])" Ответ #1 @Алексей Немиро 10.09.2013 14:23 Если MS Access, не уверен, но может сработает такой вариант: SELECT *, (SELECT COUNT(*) FROM [Pensioner] WHERE IsNull([Address])) AS unaddress_count FROM [Pensioner] Если Access и этот вариант не сработает, то придется делать два запроса. Либо, можно сделать один запрос, данные загнать в DataSet и из него уже выдергивать из таблиц (коллекция Tables). Ответ #2 @capetownn 11.09.2013 17:53 Тип базы Access, НЕ сработало. Ошибки в тексте запроса НЕТ, однако не то. Перепробовал около 9 вариантов на основе Вашего текста. Я предполагал, что одним запросом можно убить 2 зайца. Найденные строки выводятся в DGV. Нет ли примера в цикле построчно прочитать таблицу с выводом в DGV? Допустим в таблице 100 000 строк. Ответ #3 @Алексей Немиро 11.09.2013 18:14 Проверил. Access (2007) понимает вложенные запросы, т.е. мой пример должен работать. Я предполагал, что одним запросом можно убить 2 зайца.Так и происходит. На выходе будет одна таблица, результат запроса SELECT COUNT(*) FROM... будет в поле unaddress_count (имя можно установить любое, см. вложенный запрос). Нет ли примера в цикле построчно прочитать таблицу с выводом в DGV?Строки содержатся в свойстве Rows, их количество можно получить из свойства Count: MsgBox(DataGridView1.Rows.Count) Программа для оптимизации CSS @roma_rio 10.09.2013 11:54 Всем привет. Может кто встречал такую программу для таблиц стилей которая оптимизирует сам файл css. Например в файле css есть .header { height:30px; line-height:30px; vertical-align:middle; } ... очень много строк .... div#header { height:30px; line-height:30px; position:absolute; } но после обработки программы файл выглядел бы вот так .header, div#header { height:30px; line-height:30px; } .header{ vertical-align:middle; } ... очень много строк .... div#header { position:absolute; } К ВИРТУАЛЬНОЙ КЛАВИАТУРЕ 1.2 @Akiva 08.09.2013 20:18 Нашел ошибку в буковке
"U", для языка ESPERANSO. ВИРТУАЛЬНАЯ КЛАВИАТУРА 1.20 @Akiva 08.09.2013 19:02 Решил сделать кучку ключей..(надеюсь это не криминал..А то все что связано с перебором кажется плохо...) Маска что то не катит..(Вернее не вывести в текстбокс..) Как бы тут 2 функции..но не катит не одна..Меня интересует маска..Вернее количество строк после.. Imports System.Text Public Class Form1 Dim w As IO.StreamWriter Dim r As IO.StreamReader Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ListBox1.Items.Clear() Label1.Text = 0 If TextBox2.Text = "" Then MsgBox("пусто") Return End If System.Text.Encoding.GetEncoding("windows-1251") Dim a As String While ListBox1.Items.Count < TextBox2.Text 'количество строк a = Key2() ' a = GenerateCode() ListBox1.Items.Add(a & " ")'иначе в листбоксе будет колбасня. Label1.Text = ListBox1.Items.Count End While End Sub Public Function Key() As Object Const nathu As String = "abcdefghijklmnopqrstuvwxyz" Const sikandar As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" Const nandwani As String = "1234567890" Dim totalequivalent As String Dim i As Short 'Dim strname As Object ' strname = TextBox1.Text ' totalequivalent = TextBox4.Text totalequivalent = sikandar & nandwani & nathu For i = 1 To CInt(62) Key = Key & Mid(totalequivalent, Int((Rnd() * Len(totalequivalent)) + 1), 1) Next i End Function Public Function GenerateCode() As Object Dim intrnd As Object Dim intstep As Object Dim strname As Object Dim intnamelength As Object Dim intlength As Object Dim strinputstring As Object strinputstring = TextBox4.Text ' strinputstring = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" intlength = Len(strinputstring) intnamelength = 7 Randomize() strname = TextBox1.Text For intstep = 1 To intnamelength intrnd = Int((intlength * Rnd()) + 1) strname = strname & Mid(strinputstring, intrnd, 1) Next GenerateCode = strname End Function Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click If ListBox1.Items.Count = 0 Then MessageBox.Show("ПУСТО", "Gen", MessageBoxButtons.OK) Else Dim save1 As New SaveFileDialog() save1.Filter = "Текстовые документы (*.txt)|*.txt" If save1.ShowDialog() = DialogResult.OK Then Dim i As Integer w = New IO.StreamWriter(save1.FileName) For i = 0 To ListBox1.Items.Count - 1 w.WriteLine(ListBox1.Items.Item(i), System.Text.Encoding.GetEncoding(1251)) Next w.Close() ' ListBox1.Items.Clear() End If End If End Sub Public Function Key2() As Object Const nathu As String = "abcdefghijklmnopqrstuvwxyz" Const sikandar As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" Const nandwani As String = "1234567890" Dim totalequivalent As String Dim i As Short Dim strname As Object strname = TextBox1.Text totalequivalent = sikandar & nandwani & nathu For i = 1 To CInt(TextBox3.Text) strname = strname & Mid(totalequivalent, Int((Rnd() * Len(totalequivalent)) + 1), 1) Next i Key2 = strname End Function Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click TextBox4.Text = "" Dim a As String While TextBox4.Text.Count < 62 'количество строк a = Key() ' ListBox2.Items.Add(a.ToString()) TextBox4.AppendText(a) ' ListBox1.SelectionMode = SelectionMode.MultiExtended 'Label1.Text = ListBox1.Items.Count End While End Sub End Class Ответ #1 @i32 08.09.2013 10:19 Понял что сильно много написал.. Проще... intnamelength = 7 Как мне это вывести в текстбокс..? Спасибо.. Ответ #2 @Crash666 08.09.2013 11:06 Можешь из функции вернуть значение в текст бокс если я все правильно понял А хотя записываешь в массив результаты, а потом берешь из него 62 строчки и выводишь Пишешь отдельно Dim val as integer = -1 Dim mass(61) as String Потом в генераторе пишешь ' код генерации val = val + 1 mass(val) = GenKey For i = 0 to 61 val = val + 1 TextBox4.AppnedText(mass(val)) For i = 0 to 62 TextBox4.Text = TextBox4.text & vbcrlf & a Next Ответ #3 @Алексей Немиро 08.09.2013 12:17 Бесполезная. Ничего не делает. strname = strname & Mid(totalequivalent, Int((Rnd() * Len(totalequivalent)) + 1), 1)тоже самое что и: strname &= strname & Mid(totalequivalent, Int((Rnd() * Len(totalequivalent)) + 1), 1) strname &= Mid(totalequivalent, Int((Rnd() * Len(totalequivalent)) + 1), 1) Mid(totalequivalent, Int((Rnd() * Len(totalequivalent)) + 1), 1)Mid - функция из VB 6.0, лучше использовать функцию Substring из .NET: totalequivalent.Substring(Int((Rnd() * Len(totalequivalent)) + 1), 1) Но лучше использовать Random из .NET: Dim rnd As New Random(Now.Millisecond) Dim num As Integer = rnd.Next(0, 1000)'в переменной num будет случайное число от 0 до 1 000 (диапазон может быть любым) Dim rnd As New Random(Now.Millisecond) Dim num As Integer = rnd.Next(0, totalequivalent.Length)'от 0 до размера строки totalequivalent по .net-овски: Return strname
Return strname В остальном, как я понимаю, нужно сгенерировать N паролей? Если все их нужно вывести в TextBox, то текстовое поле, видимо, должно быть многострочным: Multiline = True, ScrollBars = Both (или Vertical): TextBox22.Text.Multiline = True TextBox22.ScrollBars = ScrollBars.Both Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ListBox1.Items.Clear() Label1.Text = "0"'строка, а не число If String.IsNullOrEmpty(TextBox2.Text) Then 'String.IsNullOrEmpty - проверит не только на "", то и на Nothing и String.Empty, что ни одно и тоже MsgBox("пусто") Return End If '<s>System.Text.Encoding.GetEncoding("windows-1251")</s>'бесполезная строчка, удаляем '<s>Dim a As String</s>' лучше в цикл засунуть, ибо переменная за его пределами не используется Dim max As Integer = CType(TextBox2.Text, Integer) 'явная типизация минимизирует число логических (самых коварных) ошибок While ListBox1.Items.Count < max 'количество строк Dim a As String = Key2() ' a = GenerateCode() ListBox1.Items.Add(a & " ")'иначе в листбоксе будет колбасня. TextBox22.Text &= a & vbCrLf ' добавляем пароль в текстовое поле: пароль + перевод строки Label1.Text = ListBox1.Items.Count.ToString() 'ToString необязательно, но это тоже явная типизация, лучше чтобы вошло в привычку End While End Sub Ответ #4 @Алексей Немиро 08.09.2013 12:21 С массивом, можно еще проще: String.Join(разделитель, массив) TextBox4.Text = String.Join(vbCrLf, mass) Ответ #5 @i32 08.09.2013 12:57 Спс.Загрузили..Сразу не разобрать...Хотя я что то про "7" - Это был
основной впр. Не заметил..В функции GenerateCode() Количество строк после маски..Вывести в текстбокс..В маем варианте возможно? Добавить свой ответ в эту тему · В теме есть еще 16 ответов. Смотреть все ответы. Создание картинки @Дерепа Алексей 07.09.2013 16:15 Мне необходимо создавать картинку не с фиксированными размерами вот код с которым программа нормально работает Sub KARTINKA1(ByVal X As Integer, ByVal Y As Integer) X *= 10 Y *= 10 Dim KARTINA As New Bitmap(1000, 1000) 'создаем картинку Dim GRAFIKA As Graphics = Graphics.FromImage(KARTINA) 'создаем рисовалку GRAFIKA.Clear(Color.White) 'Очищаем картинку и окрашиваем в белый цвет ' Создание пера для рисования им фигур Dim Перо_сетка = New Pen(Color.Blue) Dim Перо_оси = New Pen(Color.Red, 4) Dim Перо_треугольник = New Pen(Color.Black, 3) GRAFIKA.DrawLine(Перо_сетка, 0, 0, 1000, 1000) ' рисуем диагональную линию KARTINA.Save("image.png") 'сохраняем (файл будет в папке с программой) End Sub Но если я изменяю строчку Dim KARTINA As New Bitmap(X, Y) 'создаем картинку а мне необходимо чтобы я мог программно задавать размеры картинки Ответ #1 @Алексей Немиро 07.09.2013 17:50 X и Y - это что? Координаты? При создании картинки нужно указывать ширину и высоту, которые должны быть больше нуля. Dim w As Integer = 1000 ' ширина Dim h As Integer = 1000 ' высота Dim pic As New Bitmap(w, h) Ответ #2 @Дерепа Алексей 07.09.2013 18:04 Огромное спасибо , теперь понятно почему у меня ничего не получалось я по ошибке передавал в процедуру одно из значений равное "0" Как сделать форму поверх остальных, зная ее Handle @Evgeny58r
07.09.2013 14:07 Здравствуйте! Подскажите, пожалуйста, как сделать следующее. Известен Handle формы. Как при нажатии на кнопку в другой форме сделать, чтобы первая становилась поверх остальных (выходила на передний план)? Ответ #1 @Crash666
07.09.2013 15:48 Ну если VB.net то можно включить быстро Topmost и сразу выключить Form2.TopMost = True Form2.TopMost = False Form2.activiti() 'я пишу так по памяти, но вроде правильно написал Form2.GetFocus() ' Или вроде этого Исходные кодыTimeControlVisual Basic .NET: Интерфейс @Shark1 07.09.2013 17:21 Пример создания пользовательского
элемента управления (аналоговые часы) в Windows Presentation Foundation.К данном исходному коду прилагаются файлы примеров. Скачать. Вакансии в ITИнженер-программист С++Россия, Иркутск | Работа в офисе | 40 000,00 KBP Программист 1СРоссия,
Красноярск | Работа в офисе | 65 000,00 KBP Разработчик MS Dynamics AXРоссия, Новосибирск | Работа в офисе | 70 000,00 KBP Программист 1СРоссия, Ростов-на-Дону | Работа
в офисе | 70 000,00 KBP Программист 1СРоссия, Ростов-на-Дону | Работа в офисе Программист на ErlangРоссия, Екатеринбург | Работа в офисе Программист 1СРоссия, Чебоксары | Работа в офисе | 80 000,00 KBP Инженер программистРоссия, Ростов-на-Дону | Работа в офисе | 50 000,00 KBP ПрограммистРоссия, Екатеринбург | Работа в офисе | 55 000,00 KBP Все вакансии в IT · Новости мира ITFujitsu разработала новое поколение фемтосот для LTEЯпонский компьютерный гигант Fujitsu говорит о разработке фемтосот нового поколения, которые способны бороться с радиопомехами и почти вдвое увеличить реальную скорость передачи данных в сетях LTE.
Напомним, что фемтосоты обычно используются как локальное решение в загородном доме, офисе или на закрытом пространстве для улучшения качества приема сигнала сотовой сети, а также для увеличения ее радиоемкости, в случае, если на небольшом пространстве работают множество абонентов. Как правило, фемтосоты рассматриваются в первую очередь, в качестве бизнес-решения для офисов и бизнес-центров. Однако у фемтосот есть одно побочное действие - если две фемтосоты поставить слишком близко друг к другу, они будут создавать
помехи друг другу, что будет ухудшать качество связи, снижать скорость интернет-подключения. 12.09.2013 11:57 · Категория: Железо · Источник: CyberSecurity.ru Новое беспроводное зарядное устройство работает на расстоянии до 10 метровЕще один ИТ-стартап утверждает, что ему удалось добиться прорыва в области беспроводной передачи электричества. Компания Ossia говорит о создании 2,4-гигагерцевого передатчика, способного заряжать устройства на расстоянии до 10 метров. Демонстрация новинки прошла на конференции TechCrunch Disrupt.
В компании говорят, что созданный зарядный прибор способен передавать заряд около 1 ватт на расстояние 10 метров без света, проводов, электромагнитных помех и сквозь стены. В компании ожидают, что коммерческие версии их продукта появятся в 2015 году. 12.09.2013 11:56 · Категория: Железо · Источник: CyberSecurity.ru Британская разведка объявила конкурс для хакеровБританский Центр правительственной связи объявил в Сети конкурс, победители которого получат возможность стать частью команды центра, занимающейся криптографией и кибербезопасностью. К участию в конкурсе приглашаются математики, программисты, хакеры, а также все те, кто «может заниматься математикой дни напролет». 12.09.2013 11:55 · Категория: Программирование · Источник: 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. |
В избранное | ||