zbeng Posted July 19, 2007 Report Posted July 19, 2007 Bazele in Visual BasicContinut:IntroducereVariabile,constanteTipuri de variabileTipul arrayInstructiuniProceduriFunctiile msgbox() si inputbox()FisiereMeniuBibliografieIntroducereVisual Basic este un mediu de programare vizuala de inalta productivitate,produs de firma Microsoft,cu care poti crea o multime de aplicatii Windows.Visual Basic este derivat de la limbajul Basic si face parte din pachetul pentru programare vizuala oferit de Microsoft,Visual Studio.Programul Visual Basic este alcatuit din :Bara de meniu—contine meniuri cu care sunteti familiarizati din alte programe(File,Edit,View,Windows,Help)+2 meniuri specifice compilatoarelor (Project,Debug,Run,Add-ins);Bara de instrumente—are cateva scurtaturi pt comenzile cele mai folosite (Save,Open..)Bara de controale(Toolbox)—contine controalele din Visual BasicFereastra Properties—proprietatile controalelor(am sa va explic cateva pe la sfarsitul tutorialului)Browser-ul pentru proiect—afiseaza formularele si modulele proiectuluiFereastra From Deisgn— contine forma fiecarui elementFereastra de cod—nu este vizibila ,dar fiecarei forme sau module ii este asociata Aici se scrie codurile din visual basic(declararea variabilelor, instructini,etc);Comentarile in Visual Basic se fac cu ajutorul ‘ (apostrof).Variabile,constante 1.VariabileVariabilele sunt numele unei locati de memorie in care se pastreaza o valoare care poate fi modificata in timpul executiei programului.Declararea variabilelor :Dim nume_variabila as tipnume-este numele variabilei declarate(si pe care vei folosio in program);tip-tipul de date care ii este asociat(vom discuta despre acestea mai tarziu);Variablele incep cu o litera sau cu _(underscore) si contine 255 de caracereMai putem folosi un fel de declarare a variabilelor: -a)Public nume as tip sau -b)Static nume as tipa)daca folosim cuvantul cheie Public inseamna ca am vrut ca variabila sa fie cunoscuta in intreaga aplicatieb)daca am folosit Static atunci inseamna ca am vrut sasi pastreze valoarea chiar si in afara proceduri. 2.ConstanteConstantele sunt un fel de variabile dar fata de acestea ele nu pot fi modificate in timpul executiei programului.Declararea constantelor :[Private][Public]Const nume as tip = valoarenume & tip-ca la variabilevaloare- poate fi un numar,caracter sau sir de caractere care in timpul unui program sa nu se schimbePrivate –cuvant cheie care face constata sa fie folosita numai in aplicatia curentaPublic - cuvant cheie care face constanta vizibila in tot programu2 functii incluse in compilator(limbaj) sunt vla() si str().Val()—transforma un sir de caractere inrun rezultat intreg(Ascii?numar)Str() –transforma un intreg intrun sir de caractere(numar?Ascii)Tipuri de variabileIn Visual Basic tipurile de variabile se impart(zic yo si multi alti de la care am invatzat) in 2 categorii :1)Numerice :Byte:de la 0 la 255Integer : numere intregi intre -32,768 si 32,767Long : intreg lung (ceva numere mai mari)Single:numere reale cu virgula mobila simpla precizieDouble:numere reale cu virgula mobila cu dubla precizieCurrency:numere foarte mari(folosite pt monede spun unele carti)Decimal:numere foarte foarte mariCu toate aceste tipuri se pot efectua operatii aritmetice.2)Nenumerice:String:ca in toate limbajele(pt siruri de caractere);Date:se foloseste pt date din calendar Boolean :retine valori de tip true/flase(adevart/fals) ;Object :pt obiecteO variabila dere care nu sa mai auzit despre ea in alte limbaje este tipul Variant.Variant—contine toate tipurile de datePt a forta o valoare sa ia un anumit tip de data atunci folositi urmatoarele sufixe :& --------------------------------------Long! ---------------------------------------Single#---------------------------------------Double@--------------------------------------CurrencyTipul arrayTipul array este o lista de variabile ,toate avand acelasi tip de date si acelasi nume.Declararea variabilelor se poate face cu ajutorul cuvintelor cheie Public sau Dim(leam explicat mai sus):Dim nume(numar_de_elemente) as tip_de_dateVariabilele sunt numar_de_elemente-1De exemplu :Dim student(3) as String avem variabilele :student,student(1),student(2)Putem declara tipul array ca:Dim trandafiri(10 to 50) as IntegerAm declarat un array care incepe cu trandafiri(10) si se termina cu trandafiri(50)Exemplu :Private Sub cmdtest_Click()Dim prop(4) as stringprop(0)= « Programare »prop(1)=”in”prop(2)=”Visual”prop(3)=”Basic”Msgbox prop(0) & “ “ & prop(1) & “” prop(2) & “ “ & prop(3)End SubInstructiuniIn Visual Basic sunt 3 feluri de instructiuni :1)de decizie2)repetitive 3)de salt1)Instructiuni de decizieSunt in numar de 2:a)Instructiunea IF b)Instructiunea Casea)Instructiunea if:Testeaza daca o conditie daca este adevarata.Folosire:are mai multe feluri de folosireIf cond then instructiuneDaca cond(conditia) este adevarata executa instructiunea.Exemplu:If 9>7 then msgbox “9 e mai mare decat 7”If cond then instructiune 1 Else instructiune 2 End IfTesteaza daca cond(conditia) este adevarat si executa instructiunea 1.Daca cond este falsa atunci executa instructiunea2 si se termina in sf programu cu autorul lui End If.Exemplu:If 7<5 then msgbox « 7 este mai mic decat 5” Else msgbox “7 este mai mare decat 5”End ifIf cond then instructiune 1 Else If cond 2then instructiune 2 Else If cond 3 then instructiune 3 : : Else If cond n then instructiune nEnd ifTesteaza daca cond(conditia) este adevarata si executa instructiunea 1,daca nu testeaza ce este la Else if la conditia 2 si daca este adevarat executa instructiunea 2 daca nu testeaza cond 3 si tot asa.Exemplu :In sf va dau un exemplu de un program complect.Faceti o forma cu 3 controale text si un label cu numele rezultat.Cele 3 controale text faci :primul la proprietatea Name scri primul,la al 2lea control la Name scri operato iar la al 3lea la Name scri aldoilea.Private Sub cmdtest_Click()Dim primul as integerDim operator as string Dim aldoilea as integerprimul = primulnumar.textoperator= operator.txtaldoilea=aldoileanumar.txtIf operator=”+” then rezultat.Caption=primul+aldoilea Else if operator=”-“ then rezultat.Caption=primul+aldoilea Else if operator=”*” then rezultat.Caption=primul*aldoilea Else if operator=”/” then rezultat.Caption=primul/aldoileaEnd IfEnd SubAcest program functioneaza ca un calculator simplu.b)Instructiunea CaseEste o instructiune cu decizie multipla.Este echivalenta cu ultimua folosinta de la if adik cum e exemplu de mai sus.Select Case cond Case 1 :instructiune Case 2 :instructiune 2 : : Case n:instructiune n Case Else:instructiune n+1End Select Testeaza conditia cond daca se afla intre case 1 si case n daca nu ,se se executa ce se afla la case else.Exemplu :Vom lua exemplu de la if(ultimul,care lam numit yo calculator)Private Sub cmdtest_Click()Dim primul as IntegerDim operator as StringDim aldoilea as Integerprimul=primulnumar.txtoperator=operator.txtaldoilea=aldoileanumar.txtSelect Case (operator.txt) Case +: rezultat.caption=primul+aldoilea Case - : rezultat.Caption=primul-aldoilea Case *: rezultat.caption=primul*aldoilea Case /: rezultat.caption=primul/aldoilea Case Else: rezultat.caption=”Ai tastat ceva gresit”End SelectEnd sub2)Instructiuni repetitiveSunt tot in numar de 3:-while -do -fora)WhileVerifica conditia si daca este adevarat o executa pana cand se face falsa.Traducere din engleza in romana while inseamna cat timp.Instructinea while este cu test initial.While(conditie) InstructiuneWendExemplu:Creazati un control text (cu numele textdatdevoi.txt)si un buton(cu numele cmdtest).Acest program cere de la utilizator un numar si acesta daca este mai mare executa pana cand numar (variabile declarata de noi) o ajunge(adik se egalizeaza).Private Sub cmdtest_Click()Dim numar as Integernumar = 1While(numar<=textdatdevoi.txt)Msgbox numar & “MsgBoxes”numar=numar+1WendEnd Subb)DoInstructiunea do :-Instructiunea cu test initial (e aproape ca while)i) Do While conditie instructiuneLoopii)Do Until Conditie InstructiuneLoopAceste 2 instructiuni sunt cu test initial si executa instructiune(poate fi un grup de isntructiuni) cat tip conditia este adevarat(i)=pana cand conditia se face falsa(ii).-Instructiune cu test final:i)Do InstructiuneLoop while conditieii)Do InstructiuneLoop until conditieAceste 2 instructiuni sunt cu test final adik prima data executa instructiune si dupaia verifica conditia(diferentza intre test initial si test final este ca la cele cu test final de cel putin o singura data se executa pe cand cea cu test initial sar putea sa nu se execute deloc)Exemplu(cu test final deoarece alea cu test initial e aproape ca while):Vom lua sursa codului de la while si o vom transpune aici cu do in loc de while.Private Sub cmdtest_Click()Dim numar as Integernumar = 1DoMsgbox numar & “MsgBoxes”numar=numar+1Loop While(numar<=textdatdevoi.txt)End SubDaca veti vedea acest cod va intrebati ce este asa diferit.Poi prima diferentza este ca sa folosit in loc de While..Wend Do..Loop While si a doua diferentza e ca daca il veti utiliza pe primu si veti scrie 1 nu se va intampla nimik,dar daca executati a doua sursa daca vei scrie 1 ti se va aparea un MsgBox si va repeta o data (adik o data trebe sa dai ok ).c)ForSincer sa fiu asta e cea mai usoara(nush care o folosesc alti programatori dar yo asta o folosesc cel mai mult).Poi ce sa zic.For tradus din engleza in romana inseamna pentru.For numevariabila_de_lacat to numevariabila_pana_la_cat InstructiuneNext numevariabilaPoi nush cum sa va explic dar mai bine zic yo sa va dau un exemplus I sa va zic acolo.Exemplu :Vom lua exemplu de la while si do.Private Sub cmdtest_Click()Dim numar as IntegerFor numar=1 to textdatdevoi.txtMsgbox numar & “MsgBoxes”Next numarEnd SubPoi cum vedeti for mai scurteaza din cod sursa si este mai usor.In loc sa ii dam valoare lu numar inafara instructiuni for o da inauntru.Acest cod se va executa pana cand numar va fi egal cu textdatdevoi.txt.Si inca o chestie in loc sa incrementam noi variabila(adik numar=numar+1) instructiunea for o face in interiorul ei cu ajutorul lui Next(urmatorul).O versiune de for mai este:For each v in multime InstructiuneNext vExemplu:Suma mai multor numere(acest exemplu lam luat dintro carte care o voi prezenta la bibliografie)Dim s,i as integerDim nrSub Suma(ParamArray())For Each I in Nrs=s+1Next iTxt_nr.txt = txt_nr.txt + str(s)+’ ‘End SubPrivate Sub cmd_exit_Click()Suma 1,7,11,14Suma 2,12End SubAcest exemplu lam dat aici dar ar putea sa fi dat si intrun urmator capitol(proceduri,mai exact la procedura sub)3)Instructiune de salt:GoToUnii zic ca este comanda unii zic ca este isntructiune(yo ii dau numele de instructiune).Poi Goto tradus din engleza in romana inseamna mergi la.Cum zice si traducerea si numele de instructiune ,GoTo poate sari peste ceva daca vreti sau poate sari intro parte a unui program(partea aleasa de voi).Private Sub cmdtest_Click()MsgBox « Salut ! »buna :MsgBox « Buna ! »ce :Msgbox « Ce faci ? »Goto bunapa : Msgbox « La revedere ! »End Sub Acest program daca il veti executati nu se va termina nici o data deoarece goto inainte de asi lua la revedere se executa din nou si tot asa.Dupa ce da un msgbox cu ce faci ? iar va va redirectiona la buna si tot asa.ProceduriIn Visual Basic se poate declara o procedura folosind meniul programului adik Tools si dupaia submeniul Add Procedure.Iti va aparea o fereastra in care la Name scri numele proceduri si la Type vei alege ce fel de procedura vrei sa fie proceura ta(voi explica un pic mai tz despre aceasta) ,iar laScope alege vizibilitatea.Akm va voi arata cum sa declara tu o procedura fara ajutorul meniului(programului).In Visual Basic sunt 2 feluri de proceduri :-pt a nu rezulta nici o valoare se foloseste procedura Sub;-pt a rezulta o valoare se foloseste procedura Function ;SubSi aceasta la randul ei se imparte in 2 :generale evenimentProcedura Sub generala trebe sa fie declarata explicit de program.Procedura Sub eveniment se refera la o procedura in care este eplata un eveniment.In toate exemplele de mai sus daca va uitati akm va zic ca sunt toate proceduri sub eveniment .O procedura eveniment este de exemplu Private Sub cmdtest_click().Evenimentul din aceasta procedura este click().Numele unei eveniment se combina cu numele controlului cu ajutorul lui « _ »(underscore).Declararea procedurii Sub in general este :[Private/Public][static]Sub nume[argument]Continutul programuluiEnd SubPrivate,Public,static este ca la variabile,se refera la vizibilitatea in program.Argument este declararea unei variabile in acel program.De exemplu :Private Sub yoDim name as inetgerputem scrie Private Sub yo(nume as string)La asta se refera argument .Daca vreti sa folositi tipul array trebe sa folositi ParamArray.Apelarea unei proceduri se face cu ajutorul lui Call.Daca ati mai lucrat in alte limbaje de programare (cum ar fi pascal) call este ca clauza with de la tipul record sin pascal.FunctionAceasta procedura returneaza o valoare.Declararea acestei fucntii este aproape ca a celei Sub:[Private/Public][static]Function nume(argument) as tip de variabilaCorpul programuluiEnd FunctionCe ziceti?Nui asa ca e exact ca seamana cu Sub,dar diferentza e ca in loc de sub declaram Function si ii acordam un tip de variabila(rezultatul care il va rezulta ii va lua acest tip).Functiile msgbox() si inputbox()Msgbox()Functia msgbox() afiseaza un mesaj intro fereastra noua.Aceasta functie este foarte mult folosita in Visual Basic.Sinatxa este:MsgBox(mesaj,[tipu;],[titlul])mesaj :ceea ce vrei tu sa apara in acea fereastra(caractere si numere deobicei)tipul :se refera cum sa afiseze msgboxul.Sub forma de eroare(VbCritical),sub forma de intrebare(VbQuestion),sub forma de avertisment(VbExclamation),sub forma de informare (VbInformation).titlul :se refera la ce nume vrei sa aiba msgboxul.Daca ii atribuim unei variabile un msgbox ca in exemplu :m = msgbox(« Acesta este un test »,VbExclamation, »Test »)Variabila m i se va atribui o valoare intreaga in funtie de ce buton vrei sa apara1-pt ok2-pt cancel3-pt abort4-pt retry5-pt ignore6-pt yes7-pt noDaca combinam aceste valori cu niste forme de afisare putem crea alte forme ca de exemplu :VbOKOnly :va afisa o informatie in care se foloseste buton okVbOKCancel : ok si cancelVbAbortRetryIgnore : abort,retry si ignore(butoane)VbYesNoCancel :yes,no si cancelVbYesNo :yes si noVbRetryCancel :retry si cancelCred ca vati prins de smecherie !!!Inputbox()Aceasta functie executa 2 aplicati :afiseaza ceva sub forma de intrebare asteapta un raspuns.(in special pt asta este folosita)Sintaxa(e ceva mai complecta decat msgbox())InputBox(mesaj,[titlu],[default],[xpos],[ypos],[helpfile])mesaj-ce intrebare vrei sai puititlu-titlul ferestrei(ca la msgbox())defaul-sir de caractere ce reprezinta un raspuns prestabilitxpos,ypox-reprezinta coordonate unde vrei s apara caseta text in aceast afereastra ;FisierePoi ce sa zic de fisiere ca aproape toti stiu ce is alea(de aceea nu mai dau si definitia).Fisierele sunt folosite peste tot si in toate limbajele de programare(cunoscute).Poi pt lucrul cu fisiere cateva lucruri elementare va voi explica yo aici.Pt a deschide un fisier(poi ca sa lucrezi cu un fisier obligatoriu trebe sa fie deschis) se foloseste urmatoarea sintaxa :Open calea for [input(asta se foloseste pt citire din fisiere)][Output(pt scriere in fisiere)][Append(pt a adauga ceva)] As nrfisiere(acest nume este folosit in programul nostru)Pt a scrie valoarea unei variabile intrun program folosimPrint #nrfisiere,lista_de_variabileTot pt scriere este folosit si urmatoarea instructiune dar aceasta scrie si stringuri si mai multe variabile.Write #nrfisier,lista_expresiiPt fisierele binare si aleatorii se foloseste isntructiunea Put #nrfisiere,lista_variabile. Fisierele binare si aleatori se deschid cu Random si Binary .Citirea dintrun fisier se face cu se foloseste :Input #nrfisiere,lista_variabile (pt liste de variabile sau stringuri)Line Input #nrfisiere,variabila (pt citirea unei liniii intregi dintr-un fisier)Get #nrfisiere,lista_variabil (pt fisierele binare si aleatorii)Si inchiderea unui fisier se face cu ajutorul instructiunii :Close #nrfisiereDaca vreti sa alegi o locatie de unde sa se deschida un fisiere (nush cum sa va explic,mai bn dau un exemplu) faceti aproape ca mine :Dim locatia as Stringcomdlg32.Show (si aicea poate fi Save pt a salva,Open pt a deschide)locatia=comdlg32.FileNameOpen locatia for (optiunile de mai sus)[] as #nrfisiereExemplu de program care lucreaza cu fisiere :Creati un control text care ii dati numele de txt_scriere si un buton pt a scrie cu numele de cmd_scris.Private Sub cmd_scris_Click()Open « c:\exemplu.txt » For Output As #1Print #, txt_scriere.TxtClose #1End SubMeniuDaca ati urmat acest mic tutorial creat de mine poti crea un program cat de cat pt folos.Pt programele mari ,ati vazut ca se foloseste meniuri.De exemplu toate programele am vazut ca au meniul File .Te gandesti cum sa faci si tu asa ceva ,nu?(cred ).Poi foarte usor .Visual basic are inclus in program(in meniul lui) un editor de meniu.Pt al accesa tot ce trebuie sa faci e sa te « duci » in Tools dupaia dai la Meniu Editor.(Ctrl+E)Este foarte usor sa lucrezi in acest « editor »Poi sa va explic :La Caption –contine numele pe care tu il vezi(de exemplu File)La Name pui numele optiuni (de obicei cu prefixu _mnu)La Index pui o valoarea indexului intr-o matriceLa Shortcat pui o combinatie de taste ca sa fie mai usor utilizatorului sa ffolosesti programuNegotiatePosition-pozitia fatza de alt meniu(coodonate)Checked-la fel ca o caseta de validareButoanele :Next-urmatorul meniuInsert-insertarea unui submeniu intrun meniuDelete-stergea unui meniuDaca punem & in fata la o litera de la Caption va realiza(yo dau exemplu dar nui obligatoriu aceasta litera) a de exemplu Animal.BibliografieIn primul rand :Visual Basic in 30 de lectii de Marina-Cristiana Bold (poi am chiar in tutorialul meu multe propozitii luate de aici deoarece nu am avut cuvinte sa explic)In al doilea rand :siteurile(sincer nush ca am cautat pe google si mia dat rezultate si am tradus de pe acolo)Si in al3lea rand :din prorpiiile mele cunostinele (akm 2 saptamani mam apucat din plictiseala de Visual Basic si am zis pe baza ce invatz sa fac si un fel de test si sa scriu ce am invatzat->rezulta ceea ce e scris aici)Creat de mine cand eram beat parca(vas da si numele dar dupaia………..)Daca am gresit pe undeva sau aveti complectari va rog sa le postati.Am creat acest mic tutorial deoarece stiu cum e sa fi n00b(am fost si inca mai sunt in multe domenii)si cauti sa invetzi ceva si nu gasesti in romana.
SlicK Posted July 20, 2007 Report Posted July 20, 2007 zbeng ma dezamagesti: http://rstcenter.com/forum/viewtopic.php?t=6265chiar asa copiat cuvant cu cuvant , de fapt nu chiar.... ai inlocuit "$-Geo-$" cu "mine cand eram beat parca"
vladiii Posted July 20, 2007 Report Posted July 20, 2007 Creat de mine cand eram beat parca(vas da si numele dar dupaia………..)In primul rand, acest tutorial mai este postat pe forum de autorul lui (aka G3o). Link: http://rstcenter.com/forum/viewtopic.php?t=6265Ma uit si in tutorialul lui, scrie asa:Creat de $-Geo-$(vas da si numele dar dupaia………..) Seamana, dar nu rasare! Macar puteai sa lasi numele lui LE: Post realizat in acelasi timp cu Slick (l-am batut pe mess )
escalation666 Posted July 20, 2007 Report Posted July 20, 2007 eh...sa zicem ca este o mica apucatura de-a lui zbeng....am prin calc si un script php postat de zbeng...creat de un team rusesc....dar bineinteles ca la credits scrie zbeng
zbeng Posted July 20, 2007 Author Report Posted July 20, 2007 hmm nu stiu ce am vrut sa fac )poate mil arati si mie acel script