Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

Visual Basic vraag

Anoniem
meneer_ed
14 antwoorden
  • Ik wil graag een programmaatje dat gegevens van de gebruiker ontvangt (via een textbox) en die ze gebruikt in een opdracht. Dit is de code van mijn button:
    [code:1:48fe0f2a69]Private Sub Btnstart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnStart.Click
    Dim varbytes As Integer
    varbytes = bytes
    Shell("ping -4 /n 30 /l varbytes www.google.nl")[/code:1:48fe0f2a69]
    Ik krijg nu deze error:
    [i:48fe0f2a69]Value of type 'System.Windows.Forms.TextBox' cannot be converted to 'Integer'. [/i:48fe0f2a69]
  • Is dit Vb.net of nog de oude vb?

    De waarde van een tekstbox is van het type string, niet van het type integer
    Waarom noem je dat varbytes?

    Ik ben geen vb programmeur, maar in c# doe je het zo, vb gaat ongeveer hetzelfde:

    string textBoxValue = MyTextBox.text

    In vb gok ik dat het zoiets moet zijn

    Dim textBoxValue as String
    textBoxValue = MyTextBox.text

    Succes!
  • Ow, bedankt!
    varbytes is gewoon de naam van de variable.

    Hij geeft nu geen foutmelding weer, maar doet de opdracht nog niet zoals ik wil.
  • Varbytes is dan toch niet een logische naam, probeer je variabelen logische namen te geven die beschrijven wat het doet ;)

    Maar wat wil je dan doen met die input?
  • Ow, sorry :P
    Ik wil de variable gebruiken in deze opdracht:

    Shell("ping -4 /n 30 /l [b:7765594a9c]varbytes[/b:7765594a9c] www.google.nl";)
  • Ja dat snap ik, maar wat wil je daarmee bereiken?

    Want zover ik vb snap, begrijp ik dat je google wilt pingen, maar wat wil je dan nog met die varbytes doen…? Soms het aantal keer dat hij moet pingen?
  • Dat is het aantal bytes waar de ping uit bestaat.
  • Of je shell ping command klopt weet ik niet, en hoe die er uit zou moeten zien geen idee.

    Maar je moet dan toch wel een integer hebben. Je kan dus weet terug naar je code die je had.

    Je krijgt nu weer die foutmelding. Je moet de waarde van je textbox omzetten in een numerieke waarde. Dan kan je doen met converten of casten.

    [code:1:4060b26205]
    Dim a As Integer, b As String
    b = "4"
    a = CInt(b)
    MsgBox a
    [/code:1:4060b26205]

    Dit stukje code zet de string waarde b om in een int. Zorg er wel voor dat je dan in je textbox alleen cijfers kan invoeren, want als je een letter invoert krijg je een crash in je programma ;)

    Succes!
  • Dat kun je toch voorkomen door of een try/except-blok of een 'veilige' conversie-routine.
    // —
    Naamgeving van variabelen, events, parameters, routines, etc. is heel belangrijk!
    Het maakt je code leesbaarder en het voorkomt dat je onlogische dingen gaat doen …
  • De ping klopt wel. Waarom " MsgBox A" ?

    JaFO, ik ben helemaal niet bekend met VB, en ben nog een beetje aan het proberen. Ik snap dus eigenlijk niks wat je zegt. :P
  • tja … ik ken geen VB.
    Maar wat ik nog van Basic weet is dat er zoiets als een 'on error'-actie moet bestaan waarmee je een eventuele fout (zoals een 'a' proberen te vertalen naar een getal) kunt afvangen.
  • [quote:c86f012be1="Elyseum"]Ow, sorry :P
    Ik wil de variable gebruiken in deze opdracht:

    Shell("ping -4 /n 30 /l [b:c86f012be1]varbytes[/b:c86f012be1] www.google.nl";)[/quote:c86f012be1]
    Wat je hiermee uitvoert is wat er letterlijk staat. Je moet ervoor zorgen dat de waarde van de variabele varbytes wordt gebruikt. Nu wordt deze opdracht uitgevoerd:[code:1:c86f012be1]ping -4 /n 30 | varbytes www.google.nl[/code:1:c86f012be1]Ik neem aan dat je dit wilt:[code:1:c86f012be1]ping -4 /n 30 | 128 www.google.nl[/code:1:c86f012be1]Je zal dus iets moeten doen als:[code:1:c86f012be1]Shell(string.Format("ping -4 /n 30 | {0} www.google.nl", varbytes))[/code:1:c86f012be1]Op deze manier wordt {0} vervangen door de waarde van de variabele varbytes.
  • Dat met die messagebox was gewoon voorbeeldje van het web.


    @meneer_ed : moet het gewoon als een string opdracht ingevoerd worden? In dat geval, luister naar meneer_ed. Ik werk zelf namelijk niet met vb en mijn kennis er van is minimaal. :)
  • meneer_ed, bedankt, het werkt nu. Maar wat nou wanneer ik meerder variables wilde toevoegen? Bijvoorbeeld voor "/n varaantal". Ik vraag dit vooral om te leren, want ik ben nieuw in Visual Basic.

    EDIT: Ik heb het al gevonden:
    [code:1:d9f775e149]Shell(String.Format("ping -4 /n 30 /l {0} {1}", varbytes, varurl))[/code:1:d9f775e149]

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.