Jump to content
7H3PRO

vb.net linie de comanda

Recommended Posts

Posted

Lucrez la un fel de program care are un textbox, un richtexbox si un buton, si care imita intr-un fel cmd-ul. Programului ii poti adauga comenzi sub forma de pluginuri pe care le scriptezi in vb.net sub forma de .dll si le adaugi intr-un asa numit folder plugins.

^Asta e conceptul.

Dar nu stiu cum sa aflu atributele comenzii, adica:

am linia

multumesc anticipat

Aici comanda este "multumesc" si atributul "anticipat", cum pot sa aflu atributul indiferent ce comanda e, sau cat de lunga e, si cate alte atribute mai sunt si care, atata timp cat ele sunt mereu despartite una de alta prin spatiu.

Posted (edited)

Folosesti String.split pentru a separa stringul dupa spatii.

Rezultatele le pastrazi intr-un array sau ce vrei tu stiind ca pe prima pozitie se afla comanda si pe urmatoarele, parametrii.

Comenzile le poti stoca intr-un dictionary, avand ca si cheie numele comnezii si ca si valoare, un array. Acel array reprezinta paramerii. Cand introduci comanda poti face in asa fel incat sa se afiseze toate posibilitatile de parametrii, adica acel array si elementele din el luate in orice mod vrei tu.

Edited by M2G
Posted (edited)

Cum se poate sa afiseze toate posibilitatile? Un fel de meniu dropdown?

edit

Cum pot sa aflu daca exista de exemplu: Array(1)

Edited by 7H3PRO
Posted

Le afisezi in consola cand apesi tab de exemplu. Daca ai comanda poti face get la valoarea acelei chei. Cum valoarea este un array, il parcurgi cu un foreach astfel ca nu conteaza cate elemente are, ti le va afisa pe toate. Merge si daca ai un element si daca ai 1000.

Sau ca alternativa poti sa folosesti un for care merge pana la array.length, adica pana la numarul maxim de elmente din array. Nu ai nevoie sa stii cate sunt.

Poti seta ca la fiecare apasare de tab sa iti mai arate un element din lista. Ca si la linux.

Posted

Citeste inceputul topicului, eu nu am o consola, daca apas tab se selecteaza urmatorul element din fereastra.

Si acum intrebarea mai importanta. Cum pot sa aflu daca exista de exemplu Array(1) sau Array(12462) ?

Posted

Ai zis ca imita intr-un fel cmd-ul, de asta am zis consola. Poti face ca atunci cand apesi tab sa nu mai treaca focusul pe urmatorul element. Sau mai simplu, pui o combinatie cum ar fi ctrl+tab si ai rezolvat problema.

Ti-am raspuns ca nu ai nevoie sa vezi daca exista un anumit element in array.

Daca citesti despre array.length si cum sa faci loopuri cu foreach o sa intelegi.

Or sa se parcurga elementele de la primul pana la ultimul, nu conteaza cate sunt.

Posted

Nu am nevoie sa parcurga nimeni nimic.

Am de exemplu comanda download:

donwload http://x.com/x.mp3 x.mp3

Adica Array(0) va fi "download" iar daca Array(0) nu exista vreau sa imi zica ceva gen type help bla bla.

Cum aflu daca exista sau nu?

Posted

Eu ti-am zis sa faci dictionary, nu array.

Comanda o pui pe cheia dictionarului. In dictionar poti sa cauti chei cu eficeinta O(1).

Dupa asta poti sa scrii ceva de genul:


if (commandDictionary.ContainsKey("download")){
Array params = (Array) commandDictionary["download"]; // acum ai in params toti parametrii pentru comanda download si poti face ce vor muschii tai cu ei.
}else // in cazul in care comanda nu exista afiseaza un mesaj
{
Console.println("Command not found");
}

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...