Witaj gościu! Zaloguj się lub Zarejestruj aby móc korzystać ze wszystkich funkcjonalności jakie oferuje to forum! Rozpocznij zarabianie przez internet, poznaj korzysci pracy w domu! Rejestracja i korzystanie z forum jest całkowicie darmowe!
Praca w domu - Dodatkowa Praca - Zarabianie przez Internet
[SZUKAM] VB - kod do generatora, losowy ale zawsze innym napis - Wersja do druku

+- Praca w domu - Dodatkowa Praca - Zarabianie przez Internet (https://zarabiam.com)
+-- Dział: Off-Topic (/Forum-Off-Topic-9)
+--- Dział: Programowanie (/Forum-Programowanie-364)
+--- Wątek: [SZUKAM] VB - kod do generatora, losowy ale zawsze innym napis (/Temat-SZUKAM-VB-kod-do-generatora-losowy-ale-zawsze-innym-napis-127820)



[SZUKAM] VB - kod do generatora, losowy ale zawsze innym napis - DonWestbam - 25-01-2016 01:59

Witam.
Jak w temacie, szukam a w sumie to proszę o podanie gotowego kodu do zaprogramowania buttona żeby po kliknięciu go w textboxie pokazywało się zdanie które mu przypisze.
Chce sobie zrobić program który ułatwi mi komentowanie, wrzucę w vb kilka komentarzy zrobię szybko apke i potem klikając na generate chcę żeby pokazywał się za każdym razem inny losowy komentarz.

Kiedyś bawiłem się w fake generetory i jakiś kod tego typu miałem ale niestety mi zaginął ..

Myślę że da się zrozumieć o co mi chodzi Big Grin

Z góry dzięki za odp! Pozdrawiam Patryk


RE: [SZUKAM] VB - kod do generatora, losowy ale zawsze innym napis - NoName - 27-01-2016 17:21

Kod:
Public Class Form1
    ' Button1 - identyfikator przycisku
    ' TextBox1 - identyfikator textboxa
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        TextBox1.Text = "test"
    End Sub
End Class

Pozdrawiam.


RE: [SZUKAM] VB - kod do generatora, losowy ale zawsze innym napis - DonWestbam - 29-01-2016 01:44

chodziło mi o coś tego typu:
Kod:
Public Class Form1

        Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

            ProgressBar1.Increment(1)

            If ProgressBar1.Value = ProgressBar1.Maximum Then

                Timer1.Stop()

                Dim key As Integer

                key = (Rnd() * 100)

                Select Case key

                    Case 1

                        TextBox1.Text = ""    
                    
                    Case 2

                        TextBox1.Text = ""

Gdy robię apke przy pomocy tego kodu i dam Case od 1 do np. 100 i w każdym inne zdanie to chciał bym żeby losowało mi się zawsze inne, używając wyżej podanego kodu zdania non stop mi się powtarzają

da się zrobić taki w którym zdania nie będą się powtarzać i zawsze będzie wyskakiwało mi w textboxie inne ?


RE: [SZUKAM] VB - kod do generatora, losowy ale zawsze innym napis - dzemba - 07-02-2016 02:43

By zdania się nie powtarzały, musiał byś ich mieć niekończenie wiele Tongue

I by pokazywanym elementem było jeszcze nie widziane zdanie, musiał by być jakiś mechanizm (najłatwiej plik tekstowy), który by przechowywał informacje o użyciu danego "zdania" i np po wykorzystaniu wszystkich resetował się, lub pobierał nową porcje "zdań".


RE: [SZUKAM] VB - kod do generatora, losowy ale zawsze innym napis - NoName - 07-02-2016 15:31

Zaimplementuj 2 tablice o tej samej N ilości zdań jakie chcesz użyć:
- pierwsza tablica A przechowuje zdania
- druga tablica B przechowuje wartości boolowskie, wszystkie ustawione na false

(oczywiście możesz to zrobić w jednej tablicy o dwóch typach, jak wolisz)

1. Niech generator wylosuje element X z tablicy B
2. Jeżeli wartość B[X] ma wartość true wróć do pkt. 1. jeżeli false idź do pkt 3.
3. Wypisz do textboxa zdanie A[X], zaś B[X] ustaw na true

Jeżeli chcesz to podpiąć do pliku tekstowego, pisz zdania każde w nowej linijce, następnie programem pobierz plik tekstowy, rozbij go (znakiem końca linii EOL) na tablicę A i na podstawie jej N ilości elementów (zdań) wygeneruj tablicę B.

Rzuciłem najprostszy konspekt, Twoje zadanie to znaleźć wszystkie potrzebne funkcje i metody, które masz w Internecie.


RE: [SZUKAM] VB - kod do generatora, losowy ale zawsze innym napis - dzemba - 08-02-2016 23:11

(07-02-2016 15:31)NoName napisał(a):  Zaimplementuj 2 tablice o tej samej N ilości zdań jakie chcesz użyć:
- pierwsza tablica A przechowuje zdania
- druga tablica B przechowuje wartości boolowskie, wszystkie ustawione na false

(oczywiście możesz to zrobić w jednej tablicy o dwóch typach, jak wolisz)

1. Niech generator wylosuje element X z tablicy B
2. Jeżeli wartość B[X] ma wartość true wróć do pkt. 1. jeżeli false idź do pkt 3.
3. Wypisz do textboxa zdanie A[X], zaś B[X] ustaw na true

Jeżeli chcesz to podpiąć do pliku tekstowego, pisz zdania każde w nowej linijce, następnie programem pobierz plik tekstowy, rozbij go (znakiem końca linii EOL) na tablicę A i na podstawie jej N ilości elementów (zdań) wygeneruj tablicę B.

Rzuciłem najprostszy konspekt, Twoje zadanie to znaleźć wszystkie potrzebne funkcje i metody, które masz w Internecie.

twoja magiczna tablica o dwóch typach, co to jest?
tablica struktur ?
tablica obiektów ?
wersja tablicy asocjacyjnej ?
coś w rodzaju mapy ?
nie jestem ekspertem od typów tablic w VB, ale na pewno nie ma czegoś takiego co opisałeś.

Ogólnie to co napisałeś ma sens, ale postaraj się pisać to albo prościej, albo jak już używasz nomenklatury od danego języka (o który jest pytanie), to staraj się pisać bardziej zrozumiale, bo wychodzi mało zrozumiały bełkot.


RE: [SZUKAM] VB - kod do generatora, losowy ale zawsze innym napis - DonWestbam - 11-02-2016 03:22

Gdyby ktoś może też tego poszukiwał to proszę
Kod:
Public Class Form1

    Dim strCytat() As String = IO.File.ReadAllLines("ścieżka do pliku")
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        If strCytat.Length > 0 Then

            Dim lCytat As String = strCytat(GetRandom(strCytat.Count))

            TextBox1.Text = lCytat

            strCytat = strCytat.Where(Function(s) s IsNot lCytat).ToArray

        End If

    End Sub

    Private random As New Random

    Private Function GetRandom(m As Integer) As Integer

        Return random.Next(0, m)

    End Function

    Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
        If TextBox1.Text <> String.Empty Then
            Clipboard.SetText(TextBox1.Text)
        Else
            Clipboard.Clear()
        End If
    End Sub
End Class

Tłumaczyłem to w formie losowania cytatów na innym forum i dostałem kod który dodatkowo trochę przerobiłem.

na przykładzie losowania tych cytatów, robimy plik txt i wrzucamy w niego cytaty które mają być losowane, jeden w lini, button2 jest zaprogramowany na kopiowanie, czyli button 1 generuje button 2 od razu kopiuje
dodam że program przelosuje cały spis a następnie trzeba go zresetować, nie pozwoli danemu cytatowi się powtórzyć