Obsah:

Programovanie vo VB6: Tipy a triky: 3 kroky
Programovanie vo VB6: Tipy a triky: 3 kroky

Video: Programovanie vo VB6: Tipy a triky: 3 kroky

Video: Programovanie vo VB6: Tipy a triky: 3 kroky
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, November
Anonim
Programovanie vo VB6: Tipy a triky
Programovanie vo VB6: Tipy a triky

Programujem vo svojom voľnom čase a som celkom zdatný programátor pomocou VB6. Je to jednoduché a zatiaľ som nenašiel nič, čo potrebujem, aby som to dosiahol, čo nie, aj keď niekedy môže byť náročné splniť vašu úlohu. Cestou som našiel toľko nepríjemných vecí, väčšinou spôsob, akým určité veci počíta. Tu je teda súhrn niektorých vecí, ktoré som sa po ceste naučil. Naliehavo vás žiadam, aby ste sa vyjadrili k problémom, a pokúsim sa vám pomôcť s ďalšími krokmi.

Krok 1: Struny

Struny
Struny

Spôsob, akým VB narába s reťazcami, je niekedy mätúci.texta = "abcdefg" put "symboly na obidve strany textu, ktorý chcete, aby sa počítal ako reťazec Stredná (reťazec, začiatok, dĺžka) vyberie časť textu z reťazcov typu stringin neexistuje nulové štartovacie reťazce začínajú na 1textb = stred (texta, 2, 2), čím sa premenná textb = "bc" textb = stred (texta, 4, 4) stane premennou textb = "defg" textb = stredom (texta, 4, 5) toto robí premennú textb = "defg" Správne, ak je text, ktorý sa pokúšate vybrať, dlhší ako dostupný text, ktorý končí na poslednom znaku, v závislosti od vášho programu budete musieť umiestniť pasce, aby ste sa vyhli chybám. je taká pasca: textb = mid (texta, 4, 5) ak len (textb) <5 potom 'Len () vráti dĺžku reťazca, <znamená menej potom msgbox "text je príliš krátky"' Zobrazí okno so správou s subex stringexit 'Týmto sa ukončí sub, v ktorom sa nachádzate. Ukončí sa kód. ak ste vo funkcii, potom by ste dali exit functionend, pokiaľ zistíte miesto znaku v reťazci, použijeme instr (Start, Stri ng1, String2) texta = "abcdefg" textb = instr (1, texta, "c") 'toto nájde písmeno c v reťazci textatextb sa teraz rovná 3POZNÁMKA: Instr vráti 0 (nula), ak nenájde znak REORGANIZÁCIA: toto je nepríjemné, ak chcete, aby „abcdefg“bolo „defgabc“texta = „abcdefg“textb = stred (texta, 4, 4) a stred (texta, 1, 3) Nebolo to také zlé, ale teraz môžeme pridať príkaz () functionsay chcete reorganizovať reťazec na znak záclony, ale nie je to to isté miesto everytimetexta = "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) všimnite si časť len (texta) - instr (1, texta, " c ") + 1, pretože inštr počíta hľadaný znak, takže sa vrátite o jeden znak späť, takže znak mid () vezme hľadaný znak ako prvý v reťazci text c sa teraz rovná" cdefgab "textd = stred (textb, instr (1, textb, "c"), len (textb) - instr (1, textb, "c") + 1) & mid (textb, 1, instr (1, textb, "c") - 1) textd now equa ls "cgfabde" skúsme nájsť znak, ktorý nie je v reťazci stringtexta = "abcdefg" textc = mid (texta, instr (1, texta, "h"), len (texta) - instr (1, texta, "h") + 1) & mid (texta, 1, instr (1, texta, "h") - 1) zobrazí sa chyba, pretože začiatočná časť Mid () nemôže = 0, pretože reťazce začínajú na 1, takže sa musíte vyhnúť spusteniu chyba. toto je jeden zo spôsobov, ako to urobiť, "h") + 1) & mid (texta, 1, instr (1, texta, "h") - 1) else 'iba jedno ďalšie vyhlásenie pre prípad, ak situácia msgbox "V reťazci nie je možné nájsť znak" "zobrazuje okno so správou s reťazec ifTo zhŕňa skoro všetko, čo potrebujete vedieť o reťazcoch

Krok 2: Konvertovanie znakov

Konvertovanie postáv
Konvertovanie postáv

HEX: Jedna, ktorú som našiel tento týždeň, má do činenia s funkciou Hex (číslo) a na dĺžke čísla nezáleží. Vráti reťazec v hexhexe (11111111) vráti „A98AC7“pri prevode znaku ascii na hex, ktorý by ste použili dotexta = "a" hex (asc (texta)) vráti "61" texta = "k" hex (asc (texta)) vráti "6B", reťazec bude mať 2 znaky pre MOST Z ASCI znakov, pokiaľ nie sú pod hodnotou 16 potom vráti iba 1 znak, ak chcete, aby boli všetky 2 znaky, urobili by ste to nasledovne: textb = hex (asc (texta)) ak len (textb) = 1 thentextb = "0" a textb 'to je nula, nie a kapitálový výnos ak

Krok 3: Úprava súboru

Úpravy súborov
Úpravy súborov

na otvorenie súboru potrebujete voľný súbor a názov súboru gfile = FreeFile 'gfile je teraz ďalším dostupným súborom freefilec = "c: / test.txt", potom existujú 4 spôsoby, ako môžete otvoriť súborInput - Môžete iba čítať. Výstup - Môžete iba písať a súbor vymaže, ak existuje. návrat znakov a posun posledných riadkovPridať - môžete iba písať. pridá sa do existujúceho súboru. návrat znakov a posledné riadky na koniec riadkaBinárne - čítanie a zápis. veľmi presné. jediný, ktorý teraz používam. na vytváranie protokolových súborov a ich použitie k nim pridá nový záznam na koniec súboru. V prípade zložitejších protokolových súborov načítajte celý súbor do premennej a nový záznam pridajte na začiatok the file.dim stro as string 'this is necessary or there will be an errorgfile = FreeFilec = "c: / test.txt" open c for binary as #gfile' remember gfile is a numberstro = space $ (lof (gfile)) „pri otváraní pre binárne musíte povedať, aká veľká je dĺžka textu, ktorý chcete vziať, lof (gfile) vráti dĺžku gfile a medzera $ () vráti reťazec medzier dĺžku zadaného čísla #gfile, 1, začnite 'od čísla súboru, počiatočný bajt, premenná, do ktorej ho chcete uložiť. a načíta sa iba dĺžka premennejclose #gfilestro sa teraz rovná súboru test.txt.informácie môžete vložiť do súboru byffile = FreeFilestro = "nový riadok" & VbCrLf & stro 'pridá „nový riadok“a návrat do karantény a riadkový posun nasleduje pôvodný texttopen c pre binárne súbory ako #ffilekill cput #ffile, 1, stro 'put prepíše predchádzajúce informácie, ak sa súbor zmenšuje, mali by ste súbor najskôr zabiť, čím sa odstráni, zatvoriť #ffilethe súbor má teraz v novej veci „nový riadok“Zistil som, že s funkciou put je, že má chyby, ak sa pokúsite vložiť znak akoput #ffile, 133, chr (1) “toto nahradí znak v bajte 133 znakom 1 alebo hex 0x01. Keď som to urobil, našiel som jeden program v skutočnosti pridal hex 0x08000100000001, čo je šialené. Vyriešil som to načítaním súboru do premennej a vykonaním reťazca modsi = 133stro = mid (stro, 1, i - 1) & chr (1) & mid (stro, i + 1, len (stro) - i), potom #ffile, 1, strothis fungoval perfektne

Odporúča: