none
Visual Basic Net(Random в txt или в текстовом файле)(очень серьезно) RRS feed

  • Вопрос

  • я пишу прогу где надо из текстового файла считать рендомную строку

    файл конце примеров

    вот мой код номер 1 :

    1. Dim FileName As String = "D:\\z.txt" обьявляю файл
    2. Dim b As New IO.StreamReader(FileName, System.Text.Encoding.GetEncoding(1251)) обьявляю файл и кодировку
    3. Dim c As String = b.ReadToEnd()читаю файл
    4. b.Close()
    5. Dim d As String = (c)
    6. Dim g As Integer обьявляю переменную
    7. Dim z As String обьявляю переменную
    8. Dim h As String обьявляю переменную
    9. Dim i As New Random обьявляю переменную Random
    10. i.Next(1, 4) обьявляю от 1 до 4
    11. h = i.ToString обьявляю из integer  в string
    12. g = d.IndexOf("a" + h) ишу букву а + число (а1)
    13. z = d.Substring(g, 4)получаю строчку от g до 4 символа
    14. MessageBox.Show(z) вывожу полученное  сообшение

    вот мой код номер 2 :

    1. Dim FileName As String = "D:\\z.txt" обьявляю файл
    2. Dim b As New IO.StreamReader(FileName, System.Text.Encoding.GetEncoding(1251)) обьявляю файл и кодировку
    3. Dim c As String = b.ReadToEnd()читаю файл
    4. b.Close(
    5. Dim d As String = (c)
    6. Dim g As Integer обьявляю переменную
    7. Dim z As String обьявляю переменную
    8. Randomize() обьявляю переменную Random
    9. Dim h As Single обьявляю переменную
    10. h = (25 - 20) * Rnd() + 1 обьявляю от 5 до 6 (должно получится в файле есть а6)
    11. Dim e As String обьявляю переменную
    12. e = h.ToString обьявляю из integer  в string
    13. g = d.IndexOf("a" + h) ишу букву а + число (а6)
    14. z = d.Substring(g, 4) получаю строчку от g до 4 символа
    15. MessageBox.Show(z) вывожу полученное  сообшение

    файл :

    1. 1explorer
    2. 2a1111111111111
    3. 3a2222222222222222
    4. 4a3333333333333
    5. 5a4444444444444
    6. 6a555555555555555
    7. a666666666666

    помогите пожалуйста очень надо

    что неправильно?

    напишите код кто знает


    4 октября 2014 г. 11:33

Ответы

  • Ну по всем вопросам отвечать я вприницпе и не стал бы. Читайте книги, статьи, накапливайте знания.

    А вот код прокомментирую

    'Объявили переменную с путем к файлу
    Dim FileName As String = "D:\\z.txt"
    ' Объявили читалку потока
    Dim b As New IO.StreamReader(FileName, System.Text.Encoding.GetEncoding(1251))
    ' Считали поток в переменную
    Dim c As String = b.ReadToEnd()
    ' Объявляем массив строк и с помощью функции Split заполняем этот массив строками из файла. Chr(13) означает символ переноса строки, поэтому мы используем его что бы разбить весь файл на отдельные строки
    Dim s_mass() As String = c.Split(Chr(13).ToString.ToArray, StringSplitOptions.RemoveEmptyEntries)
    'Переменная рандома
    Dim r As New Random
    'Получаем случайное число в диапазоне от 0 до количества строк в нашем массиве
    Dim i As Integer = r.Next(0, s_mass.Length - 1)
    'Ну тут понятно
    MessageBox.Show(s_mass(i))

    VB.Net - WPF, WinRT, WP

    8 октября 2014 г. 14:59

Все ответы

  • Не совсем понял. Вы пишите что нужна рандомная строка, а сами ищите там какие то буквы. Что именно не получается? Ошибку выдает или что? Опишите задачу полностью.

    UPD.

    Я на VB давно пишу, но не претендую что все знаю. Так вот я не понял вот эту строчку

    1. Dim d As String = (c)

    Она чего делает?


    VB.Net - WPF, WinRT, WP

    • Изменено LXGDARK 6 октября 2014 г. 14:09
    6 октября 2014 г. 14:07
  • Не совсем понял. Вы пишите что нужна рандомная строка, а сами ищите там какие то буквы. Что именно не получается? Ошибку выдает или что? Опишите задачу полностью.

    UPD.

    Я на VB давно пишу, но не претендую что все знаю. Так вот я не понял вот эту строчку

    1. Dim d As String = (c)

    Она чего делает?


    VB.Net - WPF, WinRT, WP

    1. Dim d As String = (c)  я давно понял что левая переменная Бненужна(извените что написал) но все равно ее не считая напишите мне что неправильно или правильный код, мне нужна рендомная строка пожалуйста(я новичек)

    7 октября 2014 г. 10:02
  • Пишу на вскидку так как студии под руками нет:

    Dim FileName as String = "D:\\z.txt"
    Dim b As New IO.StreamReader(FileName, System.Text.Encoding.GetEncoding(1251))
    Dim c As String = b.ReadToEnd()
    Dim s_mass () as String = c.Split (Chr(13), StringSplitOptions.RemoveEmptyEntries)
    Dim r As New Random
    Dim i as Integer = r.Next (0, s_mass.Length-1)
    MessageBox.Show (s_mass(i))

    VB.Net - WPF, WinRT, WP

    • Изменено LXGDARK 7 октября 2014 г. 11:13
    7 октября 2014 г. 10:17
  • спасибо проверю отвечу
    7 октября 2014 г. 11:12
  • Ошибка    2    "Next" не является членом "Integer".    C:\Users\Аниме Любитель\Documents\Visual Studio 2013\Projects\приложение\приложение\Form1.vb    309    24    приложение

    Ошибка    1    Не удалось разрешить перегрузку, так как ни один доступный "Split" не может быть вызван с данными аргументами:
        'Public Function Split(separator() As String, options As System.StringSplitOptions) As String()': Невозможно преобразовать значение типа "Char" в "1-мерный массив из String".
        'Public Function Split(separator() As Char, options As System.StringSplitOptions) As String()': Невозможно преобразовать значение типа "Char" в "1-мерный массив из Char".
        'Public Function Split(separator() As Char, count As Integer) As String()': Невозможно преобразовать значение типа "Char" в "1-мерный массив из Char".
        'Public Function Split(ParamArray separator() As Char) As String()': Значения "System.StringSplitOptions" невозможно преобразовать в Char. Используйте Microsoft.VisualBasic.ChrW для преобразования числа в знаки Юникода или сначала преобразуйте его в значение типа String для получения числа.    C:\Users\Аниме Любитель\Documents\Visual Studio 2013\Projects\приложение\приложение\Form1.vb    307    30    приложение

    7 октября 2014 г. 11:17
  • извените за флуд очень жду ответа
    7 октября 2014 г. 11:18
  • Я уже исправил. Заметил буквально за минуту до того как вы написали. Там не i, а r

    VB.Net - WPF, WinRT, WP

    7 октября 2014 г. 11:21
  • Ошибка    1    Не удалось разрешить перегрузку, так как ни один доступный "Split" не может быть вызван с данными аргументами:
        'Public Function Split(separator() As String, options As System.StringSplitOptions) As String()': Невозможно преобразовать значение типа "Char" в "1-мерный массив из String".
        'Public Function Split(separator() As Char, options As System.StringSplitOptions) As String()': Невозможно преобразовать значение типа "Char" в "1-мерный массив из Char".
        'Public Function Split(separator() As Char, count As Integer) As String()': Невозможно преобразовать значение типа "Char" в "1-мерный массив из Char".
        'Public Function Split(ParamArray separator() As Char) As String()': Значения "System.StringSplitOptions" невозможно преобразовать в Char. Используйте Microsoft.VisualBasic.ChrW для преобразования числа в знаки Юникода или сначала преобразуйте его в значение типа String для получения числа.    C:\Users\Аниме Любитель\Documents\Visual Studio 2013\Projects\приложение\приложение\Form1.vb    285    34    приложение
    7 октября 2014 г. 11:38
  • Ну это не раньше чем завтра. Так как до студии я не скоро доберусь.

    VB.Net - WPF, WinRT, WP

    7 октября 2014 г. 11:42
  • спасибо подожду
    7 октября 2014 г. 11:47
  • Исправил, проверил. Все работает.
    Dim FileName As String = "D:\\z.txt"
    Dim b As New IO.StreamReader(FileName, System.Text.Encoding.GetEncoding(1251))
    Dim c As String = b.ReadToEnd()
    Dim s_mass() As String = c.Split(Chr(13).ToString.ToArray, StringSplitOptions.RemoveEmptyEntries)
    Dim r As New Random
    Dim i As Integer = r.Next(0, s_mass.Length - 1)
    MessageBox.Show(s_mass(i))


    VB.Net - WPF, WinRT, WP

    8 октября 2014 г. 9:05
  • Исправил, проверил. Все работает.
    Dim FileName As String = "D:\\z.txt"
    Dim b As New IO.StreamReader(FileName, System.Text.Encoding.GetEncoding(1251))
    Dim c As String = b.ReadToEnd()
    Dim s_mass() As String = c.Split(Chr(13).ToString.ToArray, StringSplitOptions.RemoveEmptyEntries)
    Dim r As New Random
    Dim i As Integer = r.Next(0, s_mass.Length - 1)
    MessageBox.Show(s_mass(i))


    VB.Net - WPF, WinRT, WP

    спасибо работает поставте пожалуйста рядом каментарии чтоб обьяснить

    и можете написать примеры с обяснительными каментариями как использовать рендом (обьясните про нее понятие в общем)

    примеры с цветом(разноцветные буквы)

    разные числа

    шрифт

    буква

    какие возможности есть

    если трудно неотвечайте но всеравно  спасибо но если хотите ответить подожду        

    8 октября 2014 г. 11:48
  • Ну по всем вопросам отвечать я вприницпе и не стал бы. Читайте книги, статьи, накапливайте знания.

    А вот код прокомментирую

    'Объявили переменную с путем к файлу
    Dim FileName As String = "D:\\z.txt"
    ' Объявили читалку потока
    Dim b As New IO.StreamReader(FileName, System.Text.Encoding.GetEncoding(1251))
    ' Считали поток в переменную
    Dim c As String = b.ReadToEnd()
    ' Объявляем массив строк и с помощью функции Split заполняем этот массив строками из файла. Chr(13) означает символ переноса строки, поэтому мы используем его что бы разбить весь файл на отдельные строки
    Dim s_mass() As String = c.Split(Chr(13).ToString.ToArray, StringSplitOptions.RemoveEmptyEntries)
    'Переменная рандома
    Dim r As New Random
    'Получаем случайное число в диапазоне от 0 до количества строк в нашем массиве
    Dim i As Integer = r.Next(0, s_mass.Length - 1)
    'Ну тут понятно
    MessageBox.Show(s_mass(i))

    VB.Net - WPF, WinRT, WP

    8 октября 2014 г. 14:59
  • спасибо вам но все таки может напишите код  рендом для цвета (разноцветные буквы или одна буква хотя бы пожалуйста(это последний вопрос)
    8 октября 2014 г. 15:52
  • спасибо вам но все таки может напишите код  рендом для цвета (разноцветные буквы или одна буква хотя бы пожалуйста(это последний вопрос)

    Новые вопросы задавайте в новых топиках с максимально подробным описанием сути вопроса.

    VB.Net - WPF, WinRT, WP

    9 октября 2014 г. 6:09
  • ответте пожалуйста на вопрос http://social.msdn.microsoft.com/Forums/ru-RU/90b036cf-3e97-41b1-822e-e86bf1ede06b/visual-basic-net-random-?forum=fordataru
    9 октября 2014 г. 13:06