Sadržaj:

Programiranje u VB6: Savjeti i trikovi: 3 koraka
Programiranje u VB6: Savjeti i trikovi: 3 koraka

Video: Programiranje u VB6: Savjeti i trikovi: 3 koraka

Video: Programiranje u VB6: Savjeti i trikovi: 3 koraka
Video: Qbasic - osnove programa 2024, Studeni
Anonim
Programiranje u VB6: Savjeti i trikovi
Programiranje u VB6: Savjeti i trikovi

Programiram u slobodno vrijeme i prilično sam programer koji koristi VB6. Lako je i još nisam pronašao sve što mi je potrebno da bih postigao, a što ne može, iako ponekad može biti prevrtljivo u izvršavanju vašeg zadatka. Usput sam pronašao toliko dosadnih stvari, uglavnom način na koji broji određene stvari. Pa evo kompilacije nekih stvari koje sam usput naučio. Pozivam vas ako imate problema s komentarom i pokušat ću vam pomoći s više koraka.

Korak 1: Gudači

Gudači
Gudači

Način na koji se VB bavi nizovima ponekad je zbunjujući.texta = "abcdefg" stavi "simbole s obje strane teksta koje želite da se računa kao stringMid (String, Start, Length) odabire dio teksta iz nizova stringova nulti početni nizovi počinju na 1textb = mid (texta, 2, 2) to čini varijablu textb = "bc" textb = mid (texta, 4, 4) to čini varijablu textb = "defg" textb = mid (texta, 4, 5) ovo čini varijablu textb = "defg" To je točno ako je tekst koji pokušavate odabrati duži od dostupnog teksta koji završava na posljednjem znaku, ovisno o vašem programu, morat ćete postaviti zamke kako biste izbjegli pogreške. Ovo je takva zamka: textb = mid (texta, 4, 5) if len (textb) <5 then 'Len () vraća duljinu niza <znači manje thenmsgbox "tekst je prekratak"' Pokazuje okvir s porukom stringexit sub 'Ovo napušta podsistem u kojem se nalazite. završavajući kôd. Ako ste u funkciji, stavili biste izlaznu funkciju i nakon utvrđivanja mjesta znaka u nizu koristimo instr (Start, Stri ng1, String2) texta = "abcdefg" textb = instr (1, texta, "c") 'ovo nalazi slovo c u nizu textatextb sada jednako 3NAPOMENA: Instr vraća 0 (nula) ako ne pronađe znak REORGANIZIRANJE: ovo je neugodno je reći da želite da "abcdefg" bude "defgabc" texta = "abcdefg" textb = mid (texta, 4, 4) & mid (texta, 1, 3) To nije bilo tako loše, ali sada dodajmo instr. ()funkcije želite reorganizirati niz u znaku zavjese, ali to nije isto mjesto svaki puttexta = "abcdefg" textb = "gfabdec" textc = mid (texta, instr (1, texta, "c"), len (texta) - instr (1, texta, "c") + 1) & mid (texta, 1, instr (1, texta, "c") - 1) zabilježite dio len (texta) - instr (1, texta, " c ") + 1 jer instr broji znak koji tražite pa se vratite jedan znak unatrag pa mid () uzima znak koji tražite kao prvi u stringtextc sada jednak" cdefgab "textd = mid (textb, instr (1, textb, "c"), len (textb) - instr (1, textb, "c") + 1) & mid (textb, 1, instr (1, textb, "c") - 1) textd sada equa ls "cgfabde" pokušajmo pronaći znak koji nije u stringtexta = "abcdefg" textc = mid (texta, instr (1, texta, "h"), len (texta) - instr (1, texta, "h") + 1) & mid (texta, 1, instr (1, texta, "h") - 1) dobivate pogrešku jer početni dio Mid () ne može = 0 budući da nizovi počinju na 1pa morate izbjegavati vrijeme izvođenja pogreška. ovo je jedan od načina da to učinitetexta = "abcdefg" if instr (1, texta, "h") 0 thentextc = mid (texta, instr (1, texta, "h"), len (texta) - instr (1, texta, "h") + 1) & mid (texta, 1, instr (1, texta, "h") - 1) else 'samo jedna druga naredba prema if Situationmsgbox "Cannot find character in string"' prikazuje okvir s porukom stringend ifThis sažima prilično sve što trebate znati o nizovima

Korak 2: Pretvaranje znakova

Pretvaranje znakova
Pretvaranje znakova

HEX: Jedan koji sam otkrio ranije ovog tjedna ima veze s Hex (number) funkcijom, duljina broja nije bitna. Vraća niz u hexhex (11111111) vraća "A98AC7" prilikom pretvaranja ascii znaka u hex, dotexta bi = "a" hex (asc (texta)) vraća "61" texta = "k" hex (asc (texta)) vraća "6B" niz će biti 2 znaka za većinu ASCI znakova, osim ako su ispod vrijednosti 16 tada se vraća samo 1 znak ako želite da svi budu 2 znaka što biste učinili na sljedeći način: textb = hex (asc (texta)) ako je len (textb) = 1 thentextb = "0" i textb 'koji je nula a ne a kapital oend ako

Korak 3: Uređivanje datoteka

Uređivanje datoteka
Uređivanje datoteka

za otvaranje datoteke potrebna vam je besplatna datoteka i naziv datotekegfile = FreeFile 'gfile je sada sljedeći slobodni filefilec = "c: / test.txt" tada postoje 4 načina na koje možete otvoriti fileInput - Možete samo čitati. Izlaz - Možete pisati samo i izbrisat će datoteku ako postoji. carriage return i linefeed zadnji znakoviDodaj - Možete samo pisati. dodat će se u postojeću datoteku. carriage return i linefeed zadnji znakoviBinary - Čitajte i pišite. vrlo precizno. jedini koji sada koristim. za izgradnju datoteka dnevnika i dodavanje takve uporabe dodat će novi unos na kraj datoteke. za složenije datoteke dnevnika učitati cijelu datoteku u varijablu i dodati novi unos na početak datoteke file.dim stro kao niz 'ovo je potrebno ili će doći do pogreške gfile = FreeFilec = "c: / test.txt" otvorite c za binarni oblik kao #gdatoteka' zapamtite gfile je numberstro = space $ (lof (gfile)) 'pri otvaranju binarnog zapisa morate reći koliko je dugačak tekst koji želite uzeti lof (gfile) vratiti duljinu gfile -a, a razmak $ () vraća niz razmaka duljine broja koji unesete #gfile, 1, stro 'dobiti iz broja datoteke, početni bajt, varijablu za spremanje. i učitava samo duljinu varijableclose #gfilestro sada je jednaka datoteci test.txt.možete staviti podatke u datoteku byffile = FreeFilestro = "Novi redak" & VbCrLf & stro 'dodaje "Novi redak" i povratak i unos redaka slijedi izvorni textopen c za binarni oblik kao #ffilekill cput #ffile, 1, stro 'put prebrisuje prethodne podatke ako je datoteka sve manja, prvo morate ubiti datoteku koja je briše Zatvori #ffiledatoteka sada ima "Novi redak" u jednoj stvari Otkrio sam s funkcijom put da ima grešaka ako pokušate staviti znak likeput #ffile, 133, chr (1) 'ovo zamjenjuje znak u bajtu 133 znakom 1 ili hex 0x01 Našao sam kada sam to učinio s jednim programom učinio da je zapravo dodan hex 0x08000100000001 što je zastrašujuće čudno. Riješio sam to tako što sam učitao datoteku u varijablu i napravio string modsi = 133stro = mid (stro, 1, i - 1) & chr (1) & mid (stro, i + 1, len (stro) - i), a zatim stavio #ffile, 1, ovo je savršeno funkcioniralo

Preporučeni: